顺序栈

来源:互联网 发布:淘宝店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;
}

总结:要考虑周全,出栈时如果栈为空,会怎么样,入栈时如果栈满了,又会出现什么情况。

运行结果:

不足和疑问:当栈顶为空时,如何输出“上溢”。

原创粉丝点击