在顺序栈中(一个数组中),操作的总是发生在数组的末尾
定义一个头文件
#ifndef SQ_STACK_H #define SQ_STACK_H #includeusing namespace std; template class sq_stack { private: int cap; //总容量 int top; //栈顶 T *s; //指向顺序栈(栈底) public: sq_stack(int); //初始化 void print_sq_stack();//打印 int flag_sq_stack(); //检查顺序栈的状态 void push_sq_stack(T);//入栈 T delete_sq_stack(); //出栈 T read_sq_stack(); //读栈顶元素 }; //初始化 template sq_stack ::sq_stack(int m) { cap=m; s=new T[cap]; top=0; } //打印 template void sq_stack ::print_sq_stack() { int i; for (i=top;i>0;i--) { cout< int sq_stack::flag_sq_stack() { if (top==cap) return -1; //栈满 if (top==0) return 0; //栈空 return 1; } //入栈 template void sq_stack ::push_sq_stack(T t) { if (top==cap) { cout<<"stack overflow"< T sq_stack ::delete_sq_stack() { T y; if (top==0) { cout<<"空栈"< T sq_stack ::read_sq_stack() { if (top==0) { cout<<"空栈"< #include "sq_stack.h" int main() { sq_stacks(10); s.push_sq_stack(50); s.push_sq_stack(60); s.push_sq_stack(70); s.push_sq_stack(80); s.push_sq_stack(90); s.push_sq_stack(100); s.print_sq_stack(); cout<