首页 > 代码库 > (001)顺序栈的C++实现
(001)顺序栈的C++实现
(001)顺序栈的C++实现
2014/12/4 jxlijunhao
这里通过C++模板类来实现一个顺序栈:
1)初始化
2)入栈
3)出栈
4)取栈顶元素
在顺序栈中(一个数组中),操作的总是发生在数组的末尾
定义一个头文件
#ifndef SQ_STACK_H #define SQ_STACK_H #include<iostream> using namespace std; template<class T> 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<class T> sq_stack<T>::sq_stack(int m) { cap=m; s=new T[cap]; top=0; } //打印 template<class T> void sq_stack<T>::print_sq_stack() { int i; for (i=top;i>0;i--) { cout<<s[i-1]<<" "; } cout<<endl; } //检查顺序栈的状态 template<class T> int sq_stack<T>::flag_sq_stack() { if (top==cap) return -1; //栈满 if (top==0) return 0; //栈空 return 1; } //入栈 template<class T> void sq_stack<T>::push_sq_stack(T t) { if (top==cap) { cout<<"stack overflow"<<endl; return; } top=top+1; s[top-1]=t; } //出栈 template<class T> T sq_stack<T>::delete_sq_stack() { T y; if (top==0) { cout<<"空栈"<<endl; return 0; } y=s[top-1]; top=top-1; return y; } template<class T> T sq_stack<T>::read_sq_stack() { if (top==0) { cout<<"空栈"<<endl; return 0; } return s[top-1]; } #endif
#include "sq_stack.h" int main() { sq_stack<int>s(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<<s.delete_sq_stack()<<endl; }
(001)顺序栈的C++实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。