欢迎来到天天文库
浏览记录
ID:35227056
大小:188.50 KB
页数:13页
时间:2019-03-22
《数据结构实验报告二栈的应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据结构实验指导书姓名:修凌云姓名:李赛赛信息与计算科学教研室实验一栈及其应用12实验目的①熟悉栈的基本概念;②熟练掌握并实现栈的基本操作以及两个栈共享一个存储空间。③应用栈实现表达式求值(可参考教材71页3.3应用举例)。实验环境计算机、vc++实验学时4学时,必做实验。实验步骤1、有详细的设计步骤;2、编辑源程序并进行调试;3、进行运行测试,并结合情况进行调整;4、对运行结果进行保存与分析;5、把源程序以文件的形式提交;实验内容1.1.根据栈的存储结构,分别给出可执行的源代码。²实验要求:能够对于不同的数据类型进行栈的初始化,入栈
2、,出栈和取栈顶元素以及对栈的判空和销毁等操作。并且注意边界条件。要求有测试案例和输出结果。程序运行效果示例:12程序源代码#includeconstintStackSize=20;structstudent{intage;12intnum;voidprintfinfo(){cout<<"age="<classSeqStack{public:SeqStack(){top=-1;}//构造函数,初始化一个空栈SeqS
3、tack(DataTypea[],intn);voidPush(DataTypex);//入栈操作,将元素x入栈DataTypePop();//出栈操作,将栈顶元素弹出DataTypeGetTop();//取栈顶元素(并不删除)intEmpty();//判断栈是否为空private:DataTypedata[StackSize];//存放栈元素的数组inttop;//栈顶指针,为栈元素在数组中的下标};templateSeqStack::SeqStack(DataTypea[],int
4、n){top=-1;for(inti=0;ivoidSeqStack::Push(DataTypex){if(top==StackSize-1)throw"上溢";data[++top]=x;}templateDataTypeSeqStack::Pop()12{DataTypex
5、;if(top==-1)throw"下溢";x=data[top--];returnx;}templateDataTypeSeqStack::GetTop(){DataTypex;if(top==-1)throw"下溢";x=data[top];returnx;}templateintSeqStack::Empty(){returntop==-1?1:0;}#includetemplate6、pe>structNode{DataTypedata;Node*next;};templateclassLinkStack{public:LinkStack(){top=NULL;}//构造函数,初始化一个空链栈LinkStack(DataTypea[],intn);~LinkStack();//析构函数,释放链栈中各节点的存储空间voidPush(DataTypex);//入栈操作,将元素x入栈DataTypePop();//出栈操作,将栈顶元素出栈DataTypeGetTop();7、//取栈顶元素(并不删除)12intEmpty(){returntop==NULL?1:0;}//判空操作,判断链栈是否为空栈private:Node*top;//栈顶指针即链栈的头指针};templateLinkStack::LinkStack(DataTypea[],intn){cout<<"执行构造函数"<*s=newNode;s->data=8、a[i];s->next=top;top=s;}}templatevoidLinkStack::Push(DataTypex){Node*s=newN
6、pe>structNode{DataTypedata;Node*next;};templateclassLinkStack{public:LinkStack(){top=NULL;}//构造函数,初始化一个空链栈LinkStack(DataTypea[],intn);~LinkStack();//析构函数,释放链栈中各节点的存储空间voidPush(DataTypex);//入栈操作,将元素x入栈DataTypePop();//出栈操作,将栈顶元素出栈DataTypeGetTop();
7、//取栈顶元素(并不删除)12intEmpty(){returntop==NULL?1:0;}//判空操作,判断链栈是否为空栈private:Node*top;//栈顶指针即链栈的头指针};templateLinkStack::LinkStack(DataTypea[],intn){cout<<"执行构造函数"<*s=newNode;s->data=
8、a[i];s->next=top;top=s;}}templatevoidLinkStack::Push(DataTypex){Node*s=newN
此文档下载收益归作者所有