c++ 实现顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素<<计算机软件技术基础 徐士良>>

来源:互联网 发布:泰捷网络电视机顶盒 编辑:程序博客网 时间:2024/05/24 02:38
/*定义顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素*/#include<iostream>using namespace std;//template <class T>class sq_Stack{private:int mm;// 存储容量int top;// 栈顶指针T *s;//顺序栈存储控件首地址public:sq_Stack(int);void prt_sq_Stack();int flag_sq_Stack();void ins_sq_Stack(T);T del_sq_Stack();T read_sq_Sqack();};//建立容量为mm的空栈template<class T>sq_Stack<T>::sq_Stack(int m){mm = m;s = new T[mm];// 动态申请存储空间top = 0;return;}// 顺序输出栈顶指针与栈中的元素template<class T>void sq_Stack<T>::prt_sq_Stack(){int i;cout<<"top = "<< top << endl;for(int i = top; i > 0; i--){cout << s[i - 1] << end;}return;}// 检测顺序表的状态template<class T>void sq_Stack<T>::flag_sq_Stack(){if(top == mm)return -1;if(top == 0) return 0;return(1);}// 入栈template<class T>void sq_Stack<T>::ins_sq_Stack(T x){if(top == m){cout << "Stack overflow!" << endl;return;}top = top + 1;s[top - 1] = x;return;}// 退栈template<class T>T sq_Stack<T>::del_sq_Stack(){T y;if(top == 0){cout << "Stack underflow!" << endl;return(0);}y = s[top - 1];top = top - 1;return y;}// 读栈顶元素template<class T>T sq_Stack<T>::read_sq_Sqack(){if(top == 0){cout<<"Stack empty!" << endl;return 0;}return s[top - 1];}

0 0