欢迎来到天天文库
浏览记录
ID:17416206
大小:33.00 KB
页数:5页
时间:2018-08-31
《实验07 栈的顺序表示和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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服务器上自己的文件夹下。三.函数的
3、功能说明及算法思路/*栈的顺序存储结构定义*/structStack{ElemType*stack;inttop;intMaxSize;};/*初始化栈S为空*/voidInitStack(Stack&S)/*元素item进栈,即插入到栈顶*/voidPush(Stack&S,ElemTypeitem)/*删除栈顶元素并返回*/ElemTypePop(Stack&S)/*读取栈顶元素的值*/ElemTypePeek(Stack&S)/*判断S是否为空,若是则返回true,否则返回false*/boolEmp
4、tyStack(Stack&S)/*清除栈S中的所有元素,释放动态存储空间*/voidClearStack(Stack&S)/*判断字符串t是否中心对称*/intIsReverse(char*t,Stacks)四.实验结果与分析五.心得体会【附录----源程序】test3_1.cpp#include#include#include#includetypedefcharElemType;#include"SeqStack.h"i
5、ntIsReverse(char*t,Stacks);voidmain(void){ElemTypex,t[100];Stacks;InitStack(s);inti=0;cin>>x;while(x!='#'){t[i++]=x;Push(s,x);cin>>x;}t[i]=' ';if(IsReverse(t,s))cout<<"该字符串中心对称"<6、{inti=0;while(!EmptyStack(s)){if(Pop(s)!=t[i])return0;elsei++;}return1;}SeqStack.hstructStack{ElemType*stack;inttop;intMaxSize;};voidInitStack(Stack&S){S.MaxSize=10;S.stack=newElemType[S.MaxSize];if(!S.stack){cerr<<"动态储存分配失败"<7、ush(Stack&S,ElemTypeitem){if(S.top==S.MaxSize-1){intk=sizeof(ElemType);S.stack=(ElemType*)realloc(S.stack,2*S.MaxSize*k);S.MaxSize=2*S.MaxSize;}S.top++;S.stack[S.top]=item;}ElemTypePop(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<8、urnS.stack[S.top+1];}ElemTypePeek(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<
6、{inti=0;while(!EmptyStack(s)){if(Pop(s)!=t[i])return0;elsei++;}return1;}SeqStack.hstructStack{ElemType*stack;inttop;intMaxSize;};voidInitStack(Stack&S){S.MaxSize=10;S.stack=newElemType[S.MaxSize];if(!S.stack){cerr<<"动态储存分配失败"<7、ush(Stack&S,ElemTypeitem){if(S.top==S.MaxSize-1){intk=sizeof(ElemType);S.stack=(ElemType*)realloc(S.stack,2*S.MaxSize*k);S.MaxSize=2*S.MaxSize;}S.top++;S.stack[S.top]=item;}ElemTypePop(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<8、urnS.stack[S.top+1];}ElemTypePeek(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<
7、ush(Stack&S,ElemTypeitem){if(S.top==S.MaxSize-1){intk=sizeof(ElemType);S.stack=(ElemType*)realloc(S.stack,2*S.MaxSize*k);S.MaxSize=2*S.MaxSize;}S.top++;S.stack[S.top]=item;}ElemTypePop(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<8、urnS.stack[S.top+1];}ElemTypePeek(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<
8、urnS.stack[S.top+1];}ElemTypePeek(Stack&S){if(S.top==-1){cerr<<"Stackisempty!"<
此文档下载收益归作者所有