实验三 栈和队列.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 栈和队列

《数据结构》课程实验 实验报告三 第三章 栈和队列的操作 实验题目: 实验三 栈和队列的操作     学号: 班级:计算机111 姓名: 张婷   指导教师: 游 静     实验完成时间: 2013.4.22 实验成绩: 实验三 栈和队列的操作 一、实验学时 2学时 二、背景知识 1.栈: (1).入栈和进栈操作只能从栈顶一端进行; (2).LIFO(后进先出); (3).栈的两种存储定义:顺序栈和链式栈。 2.队列: (1).入队操作从队尾进行,出队操作从对头进行; (2).FIFO(先进先出); (3).队列的两种存储定义:顺序队和链队。 三、目的要求 掌握栈的顺序表示和实现。 Typedef struct{ SelemType *base; SelemType *base; Int stacksize; }sqstack; 掌握队列的链式表示和实现以及顺序表示和实现。 链队列: Typedef struct Qnode{ QelemType data; struct Qnode *next; } Qnode,*Queueptr; Typedef struct{ Queueptr front; Queueptr rear; }linkQueue; 顺序队列: #define MAXQSIZE 100 Typedef struct{ Qelemtype *base; int front; int rear; }sqQueue; 四、实验内容 顺序栈和循环队列的创建、入栈(队)、出栈(队)等基本操作。 数制转换问题 【问题描述】 十进制数N和其它d进制数的转换是计算机实现计算的基本问题。试编制一段程序满足下列要求:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。 【基本要求】 首先初始化一个顺序栈,通过入栈出栈操作辅助完成数制的转换操作。 五、程序实例:顺序队列的入队和出队操作。 【问题描述】 使有数组创建队列。程序使有选项运行队列的操作,如:输入1表示元素入队,输入2表示元素出队,输入3表示结束程序运行,并且将队列剩余元素输出。 【基本要求】 首先使有数组创建队列,然后编写入队函数和出队函数,最后编写主函数。 【测试数据】 如:输入队列的元素是:[2][3][4][5][6] 取出队列的元素是:[2] 剩余队列的元素是:[3][4][5][6] 【实现提示】 #define MAXQUEUE 10 /* 队列的最大容量 */ int queue[MAXQUEUE]; /* 队列的数组定义 */ int front = -1; /* 队头 */ int rear = -1; /* 队尾 */ /*―――――――――――入队―――――――――――*/ int enqueue(int value) { if ( rear = MAXQUEUE ) /* 检查队列是否全满 */ return -1; /* 无法存入 */ rear++; /* 队尾指针前移 */ queue[rear] = value; /* 存入队列 */ } /*―――――――――――出队―――――――――――*/ int dequeue() { if ( front == rear ) /* 检查队列是否为空 */ return -1; /* 无法取出 */ front++; /* 队头指针前移 */ return queue[front]; /* 队列取出 */ } 实验结果 1、第一题 顺序栈实现 #includestdio.h #define ElementTyp

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档