实验四顺序栈的实现

来源:互联网 发布:打击电信网络诈骗视频 编辑:程序博客网 时间:2024/06/08 07:11

实验4:栈和队列的基本操作实现及其应用

一、实验目的

1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。

2、 学会使用栈和队列解决实际问题。

二、实验内容

1、 自己确定结点的具体数据类型和问题规模:

分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。

分别建立一个顺序队列和链队列,实现队列的入队和出队操作。

2、 设计算法并写出代码,实现一个十将二进制转换成2进制数。


顺序栈的实现

#includeusing namespace std;const int StackSize=10;class SeqStack{public:SeqStack(){top=-1;}  //构造函数,初始化一个空栈 ~SeqStack(){}         //析构函数为空 void Push(int x);     //入栈操作,元素x 入栈 int Pop();            //出栈操作,栈顶元素弹出 int GetTop(){if(top!=-1)return data[top];}  //取栈顶元素(不删除) int Empty(){if(top==-1) return 1;else return 0;}      // 判断是否空栈 private: int data[StackSize];     //存放栈顶元素的数组 int top;            //栈顶指针,为栈顶元素在数组中的下标 };void SeqStack:: Push(int x){if(top==StackSize-1)throw "上溢";data[++top]=x; }int SeqStack::Pop(){int x;if(top==-1)throw"下溢";x=data[top--];return x; }int main(){     int x,n,d,flag,tab;  SeqStack 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<

执行结果截图:


原创粉丝点击