实验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;}//输出栈template void 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
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《循环队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 实验4:栈和队列的基本操作实现及其应用之《链栈》
- 实验4:栈和队列的基本操作实现及其应用之《链栈》
- 实验4:栈和队列的基本操作实现及其应用之《进制转换》
- 实验4:栈和队列的基本操作实现及其应用之《排号叫号管理》
- 实验4:栈和队列的基本操作实现及其应用之《进制转换》
- 实验4:栈和队列的基本操作实现及其应用之《链栈》
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 秒杀系统并发应对的设计思路小结
- 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
- python爬虫实战笔记---selenium爬取QQ空间说说并存至本地(上)
- java---策略模式
- 跟我撩fastjson-第一章:认识fastjson
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- [bzoj2427][HAOI2010]软件安装(树形dp+tarjan)
- nodejs中流(stream)的理解
- linux 下时间字符串和time_t类型之间的相互转化
- Linux 参看cuda 及 显卡
- 模板的分离编译问题
- Chrome应用商店打不开解决方法
- Kubernetes Informer 详解
- $.ajax()方法学习笔记