实验四顺序栈的实现

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

一、实验目的

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

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

二、实验内容

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

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

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

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


顺序栈的实现

#include
using 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<

执行结果截图:


猜你喜欢

转载自blog.csdn.net/c77777_/article/details/78254460