链栈的实现
来源:互联网 发布:鼠标 知乎 编辑:程序博客网 时间:2024/06/03 17:16
实验4:栈和队列的基本操作实现及其应用
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、 自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、 设计算法并写出代码,实现一个十将二进制转换成2进制数。
链栈的实现:
#includeusing namespace std;struct Node{ int data; Node * next; }; class LinkStack{public:LinkStack(){top=NULL;} //构造函数,初始化一个空栈 ~LinkStack(); void Push(int x); //入栈操作,将元素X入栈 int Pop(); //出栈操作,将栈顶元素出栈 int GetTop(){if(top!=NULL)return top->data;} //取栈顶元素(并不删除) int Empty(){if(top==NULL) return 1;else return 0;} // 判空操作,判断链栈是否为空栈 private:Node * top; //栈顶指针即链栈的头指针 }; LinkStack::~LinkStack(){Node *q;while(top!=NULL){ q=top; top=top->next; delete q;}}void LinkStack::Push(int x){Node *s; s=new Node;s->data=x;s->next=top;top=s;}int LinkStack::Pop(){int x;Node *p;if(top==NULL)throw"下溢";x=top->data;p=top;top=top->next;delete p;return x;}int main(){ int x,n,d,flag,tab; LinkStack S; flag=0;do{cout<<"输入你要的插入的数:"< >n;cout<<"是否继续插入(1/0)"< >d;S.Push(n);}while(d);cout< >tab; switch(tab) { case 1:{ cout< >x; S.Push(x); break; } case 2: { cout<
执行结果截图:
阅读全文
0 0
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- 链栈的实现
- SQL进阶---第二单元(第九到第十三课)、Queries
- C++类的定义
- 题3 二维数组中的查找
- jsp页面中的代码执行加载顺序
- LruCache原理
- 链栈的实现
- hdu 1853 Cyclic Tour(KM 最小权值匹配)
- bzoj 2763: [JLOI2011]飞行路线
- bzoj1492 货币兑换Cash
- 2017关于自学PHP的方法
- Python基础教程(1)
- VMware12.0下安装配置Ubuntu17.04
- 1 笔记:数据库创建
- git branch --set-upstream 本地关联远程分支