1 / 9
文档名称:

数据结构-实验3-程序栈和队列的实现.doc

格式:doc   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构-实验3-程序栈和队列的实现.doc

上传人:xxj16588 2016/7/7 文件大小:0 KB

下载得到文件列表

数据结构-实验3-程序栈和队列的实现.doc

文档介绍

文档介绍:《数据结构》课程实验报告实验名称程序栈和队列的实现实验序号 3 实验日期 2012-4-18 姓名曹志华院系计算机科学与信息工程学院班级 101041C1 学号 1010411501 专业计算机科学与技术指导教师武伟成绩教师评语一、实验目的和要求 1. 理解栈和队列的特性以及它们之间的差异,知道在何时使用哪种数据结构; 2. 掌握栈和队列的顺序存储结构及其基本运算实现; 3. 注意栈满和栈空的条件; 4. 重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队满和队空的条件; 5. 灵活运用栈和队列这两种数据结构解决一些综合应用问题。二、实验项目摘要实验 1 :编写一个程序,实现顺序栈的各类基本运算,并在此基础上设计一个主程序完成如下功能: 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 ,栈和环形队列的顺序存储结构及其基本运算实现栈的顺序存储结构以及基本运算实现: ?初始化栈?销毁栈?求栈的长度?判断栈是否为空?进栈( Push ) ?出栈( Pop ) ?显示栈中元素 2. 环形队列的性质: 环形队列的队头指针和队尾指针初始化时都置为 0; 三、实验结果与分析 1. 实验结果: 实验 1: 实验 2: 2. 实验分析: 本次实验需要对栈和队列进行充分的了解, 虽然栈和队列实质上是不同的, 但在编写程序时大致相似。通常栈可以用顺序的方式存储, 分配一块连续的存储区域存放栈中元素, 并用一个变量指向当前的栈顶。而队列的顺序存储结构需要使用一个数组和两个整数型变量来实现。 3. 源代码实验 1: #include<> #include<> #define MaxSize 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->data[s->top]=e; return 1;} int StackLength(SqStack *s)// 求栈的长度{ return(