数据结构-实验3-程序栈和队列的实现.doc
《数据结构-实验3-程序栈和队列的实现.doc》由会员分享,可在线阅读,更多相关《数据结构-实验3-程序栈和队列的实现.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程实验报告实验名称程序栈和队列的实现实验序号3实验日期2012-4-18姓 名曹志华院系计算机科学与信息工程学院班 级C1学 号专 业计算机科学与技术指导教师武伟成 绩教师评语一、实验目的和要求1. 理解栈和队列的特性以及它们之间的差异,知道在何时使用哪种数据结构;2. 掌握栈和队列的顺序存储结构及其基本运算实现;3. 注意栈满和栈空的条件;4. 重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队满和队空的条件;5. 灵活运用栈和队列这两种数据结构解决一些综合应用问题。二、实验项目摘要实验1:编写一个程序,实现顺序栈的各类基本运算,并在此基础上设计一个主程序完成如下功能:
2、1. 初始化栈s;2. 判断栈s是否非空;3. 以此进栈元素a,b,c,d,e;4. 判断栈s是否非空;5. 输出栈长度;6. 输出从栈顶到栈底元素;7. 输出出栈序列;8. 判断栈s是否非空;9. 释放栈。 实验2:编写一个程序,实现顺序环形队列的各类基本运算,并在此基础上设计一个主程序完成如下功能: 1 初始化队列q; 2 判断队列q是否为空; 3 依次进队元素a,b,c; 4 出队一个元素,输出该元素; 5 输出队列q的元素个数;6 依次进队列元素d,e,f; 7 输出队列q的元素个数; 8 输出出队序列;9 释放队列。三、实验预习内容1,栈和环形队列的顺序存储结构及其基本运算实现栈的顺
3、序存储结构以及基本运算实现:l 初始化栈l 销毁栈l 求栈的长度l 判断栈是否为空l 进栈(Push)l 出栈(Pop)l 显示栈中元素 2. 环形队列的性质:环形队列的队头指针和队尾指针初始化时都置为0;三、实验结果与分析 1. 实验结果: 实验1:实验2:2.实验分析: 本次实验需要对栈和队列进行充分的了解,虽然栈和队列实质上是不同的,但在编写程序时大致相似。通常栈可以用顺序的方式存储,分配一块连续的存储区域存放栈中元素,并用一个变量指向当前的栈顶。而队列的顺序存储结构需要使用一个数组和两个整数型变量来实现。3.源代码 实验1:#include#include#define MaxSize
4、 1024 typedef char ElemType;typedef struct ElemType data MaxSize;int top ;SqStack;void InitStack(SqStack *&s)/初始化栈 s=(SqStack *)malloc(sizeof(SqStack);s-top=-1;int StackEmpty(SqStack*s)/判断栈是否为空 return(s-top=-1);int Push(SqStack *&s,ElemType e)/进栈 if(s-top=MaxSize-1)return 0;s-top+;s-datas-top=e;retu
5、rn 1;int StackLength(SqStack *s)/求栈的长度 return(s-top+1);int DispStack(SqStack *s)/显示栈中元素 int i;for(i=s-top;i=0;i-)printf(%c,s-datai);printf(n);int Pop (SqStack*&s,ElemType &e)/出栈 if(s-top=-1) return 0; e=s-datas-top; s-top-; return 1; int ClearStack(SqStack *&s)/释放栈 free(s); void main() SqStack *s; E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 程序 队列 实现
限制150内