栈(顺序存储)C++模板实现
2014-04-08 21:46
351 查看
#include <iostream> using namespace std; template <typename T> class stack{ private: int top; //栈顶指针 int maxLen; //栈最大长度 T *data; //用数组来创建栈 public: stack(int top_ = -1 , int maxLen_ = 10):top(top_),maxLen(maxLen_){ data = new T[maxLen]; //长度为maxLen的动态数组 } ~stack(){ delete [] data; //释放动态数组 } void Push(T x); //将x推进栈 void Pop(); //推出栈顶元素 T getPeek(); //读栈顶元素 bool isEmpty(); //判断栈是否为空 bool isFull(); //判断栈是否满 void printAll(); //打印整个栈 }; template <typename T> void stack<T>::Push(T x){ //将x推进栈,实现部分 if(isFull()) return; top++; data[top] = x; } template <typename T> void stack<T>::Pop(){ //推出栈顶元素,实现部分 if(isEmpty()) return; top--; } template <typename T> T stack<T>::getPeek(){ //获得栈顶元素,实现部分 if(isEmpty()) return; return data[top]; } template <typename T> bool stack<T>::isEmpty(){ //判断栈是否为空,实现部分 return top==-1; } template <typename T> bool stack<T>::isFull(){ //判断栈是否满,实现部分 return top==maxLen-1; } template <typename T> void stack<T>::printAll(){ //打印栈内元素,实现部分 if(isEmpty()) return; for(int i = 0; i <=top ; i++){ cout<<data[i]<<endl; } } void main(){ stack<int> a; //创建元素类型为int的栈对象 a.Push(1); //将1推进栈 a.Push(2); //将2推进栈 a.Push(3); //将3推进栈 a.Push(4); //将4推进栈 a.Push(5); //将5推进栈 a.Pop(); //弹出栈顶元素 a.printAll(); //打印栈内元素 }
相关文章推荐
- 队列(顺序存储)C++模板实现
- 顺序栈的实现和c++模板
- c++模板类实现线性表顺序存储
- C++模板实现顺序表
- c++实现单链表,双向链表,顺序表的接口(非模板)
- 队列的顺序存储及实现(C++版)
- 栈的顺序存储实现c++
- C++基于模板顺序表的实现(带排序)
- C++顺序表的实现(采用模板)
- C++实现循环队列之顺序存储
- c++ 模板实现顺序表
- c++ 顺序存储和链表存储 栈的实现代码
- 数据结构(6) 顺序队列 c++ 模板实现
- C++实现顺序栈之两栈共享存储空间
- 线性表顺序存储(C++ 实现)
- C++模板实现顺序队列
- 栈(链式存储) C++模板实现
- C++实现顺序栈,运用模板,界面友好,操作方便,运行流畅
- 顺序存储线性表的C++实现——严蔚敏版《数据结构》
- C++实现顺序存储的线性表