顺序栈
来源:互联网 发布:淘宝店lol代练哪家可靠 编辑:程序博客网 时间:2024/06/01 10:12
一、实验目的
熟练掌握栈的结构特点,学会使用栈解决实际问题
二、实验内容
1. 确定结点的具体数据类型和问题规模
2.设计算法并写出代码
三、实验步骤
1.本次实验的数据类型为整型
2.顺序栈使用数组存储数据,首先要确定好问题的规模,进而确定数组的大小,因为栈具有先进后出,后进先出的特点,所以需要定义一个指向栈顶的指针,当需要执行出栈操作时,指针指向的元素出栈。
3,完整程序如下:
#include <iostream>
using namespace std;
const int Stacksize=33;
class Seqstack{
public:
Seqstack(){top=-1;}
~Seqstack(){}
void push(int x);
int pop();
private:
int data[Stacksize];
int top;
};
void Seqstack::push(int x) {
if(top==Stacksize-1) throw "上溢";
data[++top]=x; }
int Seqstack::pop(){
if(top==-1) throw"下溢";
int x=data[top--];
return x;
}
int main(){
Seqstack S;
cout<<"对2和12、34执行入栈操作"<<endl;
S.push(2);
S.push(12);
S.push(34);
cout<<"栈顶元素为:"<<endl;
cout<<S.pop() <<endl;
}
总结:要考虑周全,出栈时如果栈为空,会怎么样,入栈时如果栈满了,又会出现什么情况。
运行结果:
不足和疑问:当栈顶为空时,如何输出“上溢”。