张日-数据结构第二次试验报告

上传人:壹****1 文档编号:34851209 上传时间:2018-03-03 格式:DOC 页数:11 大小:323.62KB
返回 下载 相关 举报
张日-数据结构第二次试验报告_第1页
第1页 / 共11页
张日-数据结构第二次试验报告_第2页
第2页 / 共11页
张日-数据结构第二次试验报告_第3页
第3页 / 共11页
张日-数据结构第二次试验报告_第4页
第4页 / 共11页
张日-数据结构第二次试验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《张日-数据结构第二次试验报告》由会员分享,可在线阅读,更多相关《张日-数据结构第二次试验报告(11页珍藏版)》请在金锄头文库上搜索。

1、中国地质大学(武汉) 数据结构第二次上机 实验报告学 院: 自动化学院 指导老师: 刘玮 学 号: 20121002354 班级序号: 231122-11 姓 名: 路康 栈和队列上机实习 1、实验目的: (1)熟练掌握栈的逻辑结构和操作规则,能在相应的实际问题中正确选用该结构。 (2)熟练掌握栈的 2种存储结构实现方法(顺序栈和链栈) ,两种存储结构和基本运算的 实 现算法,注意栈空盒满的判断条件及它们的描述方法。 (3)熟练掌握队列的逻辑结构和操作规范,能在相应的实际问题中正确选用该结构。 (4)掌握循环队列与链队列两种存储结构的实现,熟练掌握各种队列基本运算的实现。 2、实验要求: (1

2、)顺序栈的插入、删除,栈顶数据元素的读取。 (2)链栈的插入、删除,栈顶数据元素的读取。 (3)循环队列的插入、删除。 (4)链队列的插入、删除。 3、实验内容: 1 栈(1)抽象数据类型定义typedef structElemType dataMaxSize; /栈的空间大小为 MaxSizeint top; /设置栈顶指针 SqStack; /栈的结构定义在本次实验中,首先建立一个空栈,进入主程序后首先初始化栈为其分配空间,然 后进入菜单选择界面,通过不同的数字输入,实现入栈,出栈,读取栈顶元素,显示 栈的所有元素,栈的长度,释放栈等操作。(2)存储结构定义及算法思想在栈结构体的定义中,t

3、ypedef int Typeelem 为整型,存储结构(入栈)如下:cina;s-top+; /在入栈是首先将栈顶指针向上加 1s-datas-top=a; /与数组赋值一样,直接赋值/其他存储与此类似,都是直接赋值与数组的某一位 退栈函数模块:void Pop(SqStack * /栈顶元素减 1,指向实际栈的最上面 显示栈所有元素函数模块: void DispStack (SqStack *s) /从栈顶到栈底顺序显示所有元素 int i; couttop;i=0;i-) coutdatairear=(q-rear+1)%Maxqsize; /尾指针加 1q-elemq-rear=a;

4、/将入队元素装到新的空尾部在此队列的存储结构的实现:先让队尾指针进 1,再将新的元素加入到队尾指针所指 示的位置,因此,队尾指针指示实际的队尾位置,队头指针指示实际队头的前一位置,要 想退出队头元素,必须先让队头指针进 1,才能取出队头元素。 退队函数模块如下: void deQueue(SqQueue * /队头指针进 1coutelemq-frontfront+1; /队头元素进 1,指向实际队头if (QueueEmpty(q) coutrear+1m)coutelemm using namespace std; #define MaxSize 5 typedef int ElemTyp

5、e;int e; typedef struct ElemType dataMaxSize; int top; SqStack; void InitStack(SqStack * s-top=-1; void ClearStack(SqStack * void StackLength(SqStack *s) couttop +1)top=-1); void Push(SqStack * s-top+; s-datas-top=a; void Pop(SqStack * void GetTop(SqStack * void DispStack (SqStack *s) /从栈顶到栈底顺序显示所有元

6、素 int i; couttop;i=0;i-) coutdataik;switch(k)case 1: Push(s);break;case 2: Pop(s);break;case 3: GetTop(s,e); cout using namespace std; #define Maxqsize 8 typedef int TypeElem; typedef struct TypeElem elemMaxqsize;int front,rear; SqQueue;void InitQueue(SqQueue *q-front=q-rear=0;void ClearQueue(SqQueue *exit(0);void QueueLength(SqQueue *q)coutrear-q-front+Maxqsize)%Maxqsizeendl; int QueueEmpty(SqQueue *q)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号