实验四:顺序栈和链栈
来源:互联网 发布:怎样让淘宝号有心 编辑:程序博客网 时间:2024/05/21 10:01
一、实验目的
熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
二、实验过程
1.顺序栈
#ifndef SeqStack_H#define SeqStack_Hconst int StackSize=10;templateclass SeqStack{public:SeqStack();~SeqStack(){}void Push(DataType x); //x入栈DataType Pop(); //将栈顶元素弹出DataType GetTop(); //取栈顶元素int Empty(); //判断栈是否为空private:DataType data[StackSize]; //存放栈元素的数组int top; //栈顶指针,指示栈顶元素在数组中的下标};#endif#include"SeqStack.h"template SeqStack ::SeqStack(){top=-1;}template void SeqStack ::Push(DataType x){if(top==StackSize-1)throw"上溢";top++;data[top]=x;}template DataType SeqStack ::Pop(){DataType x;if(top==-1)throw"下溢";x=data[top--];return x;}template DataType SeqStack ::GetTop(){if(top!=-1)return data[top];}template int SeqStack ::Empty(){if(top==-1)return 1;else return 0;}#include using namespace std; //引入输入输出流#include"SeqStack.cpp" //引入类SeqStack的成员函数定义void main() //主函数{SeqStack S; //创建模板类的实例if(S.Empty())cout<<"栈为空"<
2.链栈
#ifndef LinkStack_H#define LinkStack_Htemplatestruct Node{DataType data;Node * next;};template class LinkStack{public:LinkStack();~LinkStack();void Push(DataType x);DataType Pop();DataType GetTop();int Empty();private:Node *top;};#endif;#include"LinkStack.h"template LinkStack ::LinkStack(){top=NULL;}template LinkStack ::~LinkStack(){Node *q=NULL;while(top!=NULL){q=top;delete q;}}template void LinkStack ::Push(DataType x){Node *s=NULL;s=new Node ;s->data=x;s->next=top;top=s;}template DataType LinkStack ::Pop(){Node *p=NULL;if(top==NULL)throw"下溢";int x;x=top->data;p=top;top=top->next;delete p;return x;}template DataType LinkStack ::GetTop(){if(top!=NULL)return top->data;}template int LinkStack ::Empty(){if(top==NULL)return 1;else return 0;}#include using namespace std;#include"1.cpp"void main(){LinkStack S;if(S.Empty())cout<<"Link is Enpty"<
三、实验心得
按照书上的部分算法提示,和实验书的源程序,可以写出栈链的程序,书本的理论知识很详细,通过实验可以将他实现。通过实验,可以更对顺序栈和链栈之间的区别更加清晰。
阅读全文
0 0
- 实验四:顺序栈和链栈
- 实验四 顺序栈
- 实验四顺序栈
- 实验四 顺序栈和链队列的操作
- 实验四 顺序队列和链队列
- 数据结构实验四之顺序栈
- 实验四 顺序栈、链栈(JavaScript)
- 实验四顺序栈的实现
- 实验四——顺序栈
- 实验三 顺序栈和链栈
- 实验三、顺序栈和链栈
- 实验三:顺序栈和链队列验证实验
- 实验四:顺序队列(循环队列)和链队列
- 顺序表c++数据结构实验之栈四:括号匹配
- 顺序栈和链栈的实现(实验3.1)
- 实验四之链栈
- 顺序栈验证实验
- 《数据结构》实验【顺序栈】
- 列表性能优化
- React native 采坑之旅
- ClipboardManager实现支付宝推荐微信QQ好友复制文字启动支付宝弹出提示框实现
- IO队列和IO调度
- Android OpenGL ES2.0学习(一)基础三角形案例
- 实验四:顺序栈和链栈
- 1659: [Usaco2006 Mar]Lights Out 关灯 迭代加深搜索
- Linux车机平台pulseaudio多alsasink配置
- js实现输入框自动提示功能
- 【A0012013B】Vuforia v1.5 SDK: Analysis and evaluation of capabilities
- [thinkPHP5项目实战_15]创建文章读取栏目列表
- MVC session过期时如何跳转
- 任学堂:一个班的差生,两年之后全班升本科,班主任做了什么?
- HDU-3757-Evacuation Plan