顺序栈
来源:互联网 发布:36o软件管家下载 编辑:程序博客网 时间:2024/06/05 05:03
#include <iostream>using namespace std;const int StackSize = 100;template <class DataType>class SeqStack {public: SeqStack(); ~SeqStack() {} void Push(DataType x); // 入栈 DataType Pop(); // 出栈int StackLength();//栈长 DataType GetTop(); bool isEmpty(); // 判断是否为空 void StackTraverse(); // 输出栈private: DataType data[StackSize]; int top;};template <class DataType>SeqStack<DataType>::SeqStack() // 构造函数 初始化一个空栈{ top = -1; }template <class DataType>void SeqStack<DataType>::Push(DataType x) { if (top == StackSize-1) throw "上溢"; data[++top] = x;}template <class DataType>DataType SeqStack<DataType>::Pop() { if (top == -1) throw "下溢"; DataType x = data[top--]; return x;}template <class DataType>int SeqStack<DataType>::StackLength(){return top;}template <class DataType>DataType SeqStack<DataType>::GetTop() { if (top == -1) throw "空栈"; return data[top];}template <class DataType>bool SeqStack<DataType>::isEmpty() { return top == -1 ? true : false;} //true返回1,false返回0template <class DataType>void SeqStack<DataType>::StackTraverse(){ if(isEmpty()) { cout<<"此栈为空"<<endl;} cout << "top" << endl; int p = top; while (p != 0) { cout << " " << data[p--] << endl; } } int main(int argc, const char * argv[]) { SeqStack<int> s = SeqStack<int>(); cout << "isEmpty : " << s.isEmpty() << endl; s.Push(86);s.Push(99);s.Push(67);s.Push(95);s.Push(88); s.Push(78);s.Push(83); s.Push(69);cout<<"整个栈的长度为:"<<s.StackLength(); cout<<"遍历整个栈:"<<endl; s.StackTraverse(); cout << "判断此时表是否为空: " << s.isEmpty() << endl; cout << "获取栈顶元素: " <<s.GetTop() << endl; cout << "出栈: " << s.Pop() << endl; cout << "出栈:" << s.Pop() << endl;cout<<"遍历整个栈:"<<endl; s.StackTraverse(); cout << "获取此时的栈顶: " <<s.GetTop() << endl; return 0;}
阅读全文
0 0
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- springmvc与struts2不同
- 变种神经网络的典型代表:深度残差网络
- 分布式系统基础-全文检索
- 一部有关IT业的科幻片
- android图片叠加方法
- 顺序栈
- Activity启动关闭动画
- PCA主成分分析
- 面试总结之e签宝
- Coursera-Deep Learning Specialization 课程之(一):Neural Networks and Deep Learning-weak2编程作业
- 51NOD 1615
- 【转载】详细对比9门主流编程语言
- 知识误区-C++头文件
- springboot全局异常控制处理