实验四——顺序栈
来源:互联网 发布:python unpackbits 编辑:程序博客网 时间:2024/05/18 03:04
一、实验目的
1、熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
建立一个顺序栈,实现栈的压栈和出栈操作。
三、源代码
seqstack.h
#ifndef seqstack_H#define seqstack_Hconst int Size=5;template<class DataType> class SeqStack{public:SeqStack(){top=-1;}//空栈 ~SeqStack(){}void Push(DataType x);//元素x入栈 DataType Pop();//一次出栈操作 DataType GetTop();//读取栈顶元素 int Empty();private:int top;//栈顶指针,栈顶元素数组下标 DataType data[Size];};#endif
seqstack.cpp
#include<iostream> using namespace std;#include"seqstack.h"template<class DataType> void SeqStack<DataType>::Push(DataType x)//元素x入栈{if(top==Size-1) throw "上溢";top++;data[top]=x;}template<class DataType> DataType SeqStack<DataType>::Pop()//出栈{DataType x;if(top==-1) throw "下溢";x=data[top];top--;return x;}template<class DataType> DataType SeqStack<DataType>::GetTop(){if(top!=-1) return data[top]; }template<class DataType> int SeqStack<DataType>::Empty(){if(top==-1) return 1;else return 0;}
seqstack_main.cpp
#include <iostream>using namespace std;#include"seqstack.cpp"int main(){SeqStack<int> S;if(S.Empty()) cout<<"栈空"<<endl;cout<<"1,2,3,4依次入栈"<<endl;S.Push(1);S.Push(2);S.Push(3);S.Push(4);cout<<"读取栈顶元素:"<<S.GetTop()<<endl;cout<<"执行一次出栈操作:"<<S.Pop()<<endl;cout<<"读取栈顶元素:"<<S.GetTop()<<endl;cout<<"执行一次出栈操作:"<<S.Pop()<<endl;cout<<"读取栈顶元素:"<<S.GetTop()<<endl;cout<<"执行一次出栈操作:"<<S.Pop()<<endl;cout<<"读取栈顶元素:"<<S.GetTop()<<endl;}
运行结果
阅读全文
0 0
- 实验四——顺序栈
- 实验四 顺序栈
- 实验四顺序栈
- 实验四:顺序栈和链栈
- 数据结构实验四之顺序栈
- 实验四 顺序栈、链栈(JavaScript)
- 实验四顺序栈的实现
- 实验三——顺序栈
- 数据结构实验三——顺序栈
- 实验四 顺序栈和链队列的操作
- 顺序表c++数据结构实验之栈四:括号匹配
- S3C2410 实验四——中断实验
- 实验四——链栈
- 数据结构第一次实验——顺序表、栈
- 实验3.3 栈与队列——顺序队列
- 实验四--ATM的顺序图
- 实验四 顺序队列和链队列
- 实验二 栈和队列——顺序栈、顺序队列
- 【leetcode】寻找两个已排序数组的中位数(类似二分)
- Apache和nginx服务运行原理
- NOIP模拟(10.22)T2 杆子的排列
- centos6.8安装zabbix3.2
- tp3.2 缓存
- 实验四——顺序栈
- 关于StoryBord 中给UIButton 设置边框
- html5、xhtml与html4的区别
- 解读Batch Normalization
- 七、tensorflow之构建网络。
- Properties文件的读取和使用
- 扁平化UI
- 132 Pattern
- STL 容器应用场景