天大数据结构_实验作业二_栈(顺序栈)+队列(循环队列).doc
《天大数据结构_实验作业二_栈(顺序栈)+队列(循环队列).doc》由会员分享,可在线阅读,更多相关《天大数据结构_实验作业二_栈(顺序栈)+队列(循环队列).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验作业二:栈(顺序栈)和队列(循环队列)1. 将编号为0和1的两个栈存放于一个数组空间Vm中,栈底分别处于数组的两端。当第0号栈的栈顶指针top0等于-1时该栈为空,当第1号栈的栈顶指针top1等于m时该栈为空。两个栈均从两端向中间增长。当向第0号栈插入一个新元素时,使top0增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top1减1得到新的栈顶位置。当top0+1 = top1时或top0 = top1-1时,栈空间满,此时不能再向任一栈加入新的元素。试定义这种双栈(Double Stack)结构的类定义,并实现判栈空、判栈满、插入、删除算法。2. 求fibonacci数列算法,并
2、比较。(递归+非递归)(非递归方法可查阅其他资料)编写实习报告要求:一、需求分析二、概要设计1.抽象数据类型2.算法三、详细设计程序代码(注释)四、调试分析调试过程中所做的工作,时间复杂度等五、测试结果输入数据和输出数据示例六、说明(如果有)编程语言:C语言或C+语言实习报告提交方式:下次上机前,将实习报告(.doc)和源程序(.cpp)压缩成一个rar文件,文件名称为学号_班级_姓名_第几次作业。例如:_六班_张三_第二次作业.rar。实习报告作为本课程的平时成绩。抄袭、雷同,双方均为0分。 第一题:一、 需求分析程序要求建立一个共享栈,分配一个存储空间,两个栈分别位于两头。并实现对两个栈的
3、插入,删除,和判断栈满和栈空。栈的位置不同,所以要求对不同栈的插入和删除采用不同的算法。二、概要设计1.抽象数据类型typedef struct int *base;int *top;int stacksize;stack;2.算法1.建立栈。int instack(stack &s,stack &w,int length)s.base=(int *)malloc(length*sizeof(length);w.base=s.base+length;if(!s.base|!w.base) return 0;elses.top=s.base;w.top=w.base;s.stacksize=le
4、ngth;w.stacksize=length;return 1;2.判断栈空。int isempty(stack s,stack w)if(s.top=s.base&w.top=w.base) return 1;if(s.top=s.base) return 2;if(w.top=w.base) return 3;else return 0;3.判断栈满。int isfull(stack s,stack w)if(s.top+1)=w.top) return 1;else return 0;4.插入元素到左边栈。void push1(stack &s,stack &w, int x)if(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 作业 顺序 队列 循环
限制150内