实验07 栈的顺序表示和实现

上传人:豆浆 文档编号:2797127 上传时间:2017-07-27 格式:DOC 页数:5 大小:33KB
返回 下载 相关 举报
实验07  栈的顺序表示和实现_第1页
第1页 / 共5页
实验07  栈的顺序表示和实现_第2页
第2页 / 共5页
实验07  栈的顺序表示和实现_第3页
第3页 / 共5页
实验07  栈的顺序表示和实现_第4页
第4页 / 共5页
实验07  栈的顺序表示和实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验07 栈的顺序表示和实现》由会员分享,可在线阅读,更多相关《实验07 栈的顺序表示和实现(5页珍藏版)》请在金锄头文库上搜索。

1、浙江大学城市学院实验报告课程名称 数据结构基础 实验项目名称 实验七 栈的顺序表示和实现 学生姓名 专业班级 学号 实验成绩 指导老师(签名 ) 日期 一. 实验目的和要求1、掌握栈的存储结构及其基本操作。学会定义栈的顺序存储结构及其各种基本操作的实现。2、掌握栈的后进先出原则。3、通过具体的应用实例,进一步熟悉和掌握栈在实际问题中的运用。二. 实验内容1、设栈采用顺序存储结构(用动态数组) ,请编写栈的各种基本操作的实现函数,并存放在头文件 SeqStack.h 中。同时建立一个验证操作实现的主函数文件 test3_1.cpp,编译并调试程序,直到正确运行。 2、 选做:编写函数,判断给定的

2、字符串是否中心对称。如字符串“abcba”、“abccba”均为中心对称,字符串“abcdba” 不中心对称。要求利用 SeqStack.h中已实现的有关栈的基本操作函数来实现。请把该函数添加到文件test3_1.cpp 中的主函数前,并在主函数中添加相应语句进行测试。 3、填写实验报告,实验报告文件取名为 report7.doc。4、上传实验报告文件 report7.doc 、源程序文件 test3_1.cpp 及 SeqStack.h到 Ftp 服务器上自己的文件夹下。三. 函数的功能说明及算法思路/*栈的顺序存储结构定义*/struct StackElemType *stack;int

3、top;int MaxSize;/*初始化栈 S 为空*/void InitStack(Stack &S)/*元素 item 进栈,即插入到栈顶*/void Push(Stack &S,ElemType item)/*删除栈顶元素并返回*/ElemType Pop(Stack &S)/*读取栈顶元素的值*/ElemType Peek(Stack &S)/*判断 S 是否为空,若是则返回 true,否则返回 false*/bool EmptyStack(Stack &S)/*清除栈 S 中的所有元素,释放动态存储空间*/void ClearStack(Stack &S)/*判断字符串 t 是否中

4、心对称*/int IsReverse(char *t,Stack s)四. 实验结果与分析五. 心得体会【附录-源程序】test3_1.cpp#include#include#include#includetypedef char ElemType;#includeSeqStack.hint IsReverse(char *t,Stack s);void main(void)ElemType x, t100;Stack s;InitStack(s);int i=0;cinx;while(x!=#)ti+=x;Push(s,x);cinx;ti=0;if(IsReverse(t,s)cout该字

5、符串中心对称endl;elsecout该字符串不是中心对称endl;ClearStack(s);int IsReverse(char *t,Stack s)int i=0;while(!EmptyStack(s)if(Pop(s)!=ti)return 0;elsei+;return 1;SeqStack.hstruct StackElemType *stack;int top;int MaxSize;void InitStack(Stack &S)S.MaxSize=10;S.stack=new ElemTypeS.MaxSize;if(!S.stack)cerr动态储存分配失败endl;e

6、xit(1);S.top=-1;void Push(Stack &S,ElemType item)if(S.top=S.MaxSize-1)int k=sizeof(ElemType);S.stack=(ElemType*)realloc(S.stack,2*S.MaxSize*k);S.MaxSize=2*S.MaxSize;S.top+;S.stackS.top=item;ElemType Pop(Stack &S)if(S.top=-1)cerrStack is empty! endl;exit(1);S.top-;return S.stackS.top+1;ElemType Peek(Stack &S)if(S.top=-1)cerrStack is empty! endl;exit(1);return S.stackS.top;bool EmptyStack(Stack &S)return S.top=-1;void ClearStack(Stack &S)if(S.stack)delete S.stack;S.stack=0;S.top=-1;S.MaxSize=0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

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