实验4:栈和队列的基本操作实现及其应用之《顺序栈》

来源:互联网 发布:java堆栈溢出怎么解决 编辑:程序博客网 时间:2024/05/16 07:12

实验4:栈和队列的基本操作实现及其应用之《顺序栈》

一、实验目的

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

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

二、实验内容

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

三、操作算法

1、入栈操作

if(top==StackSize-1)  throw"上溢";

data[++top]=x;

2、出栈操作

   if(top==-1) throw"下溢";
   x=data[top--];
3、判空操作

top==-1?return 1:return 0;

四、代码

#includeusing namespace std;const int StackSize=10;template class SeqStack{public:SeqStack(){ top=-1; }~SeqStack(){}void Push(T x);     //入栈T Pop();      //出栈T GetTop(){ if(top!=-1) return data[top]; }   //取栈顶void Print();   //输出int Empty(){ if(top==-1) return 1; else return 0; }   //判断栈是否为空private:T data[StackSize];   //存放栈元素int top;   //指向栈顶元素};//入栈操作template void SeqStack::Push(T x){if(top==StackSize-1)  throw"上溢";data[++top]=x;       //top先+1,再赋给x}//出栈操作template T SeqStack::Pop(){T x;if(top==-1) throw"下溢";x=data[top--];            //先赋给x,top再+1return x;}//输出栈templatevoid SeqStack::Print(){if(top==-1)  cout<<"栈为空!!";else{int i;i=top;while(i!=-1){cout< s;    cout<<"\t\t顺序栈"<>tab;cout<>n;if(n!=0) s.Push(n);}check=s.Empty();if(check)  cout<<"栈为空!!"<

五、运行结果

1、输入1,进行入栈操作

2、输入2,出栈,栈头元素发生改变

3、输出栈内元素


阅读全文
0 0
原创粉丝点击