顺序栈,数组存储栈元素(C++)
来源:互联网 发布:青少年编程培训班 编辑:程序博客网 时间:2024/06/08 04:22
用数组来存储栈中的元素
const int stackIncreament=20;template<class T>class Stack{public: Stack(int sz=50); ~Stack(){delete []elements;} void Push(const T&x); bool Pop(T&x); bool getTop(T&x); bool IsEmpty()const{return (top==-1)?true:false;} bool IsFull()const{return (top==maxSize-1)?true:false;} int getSize()const{return top+1;} void makeEmpty(){top=-1;} friend ostream& operator<<(ostream& os, Stack<T>& s);private: T *elements; int top; int maxSize; void overflowProcess();//当数组不够存放数据时,对数组容量进行扩充};template<class T>Stack<T>::Stack(int sz):top(-1),maxSize(sz){ elements=new T[maxSize]; assert(elements!=NULL);}template<class T>void Stack<T>::overflowProcess(){ //私有函数,扩充栈的存储空间 T *newArray = new T[maxSize+stackIncreament]; if(newArray==NULL){cerr<<"存储分配失败!"<<endl;exit(1);} for(int i=0;i<maxSize;i++)newArray[i]=elements[i]; maxSize=maxSize+stackIncreament; delete []elements; elements=newArray;}template<class T>void Stack<T>::Push(const T&x){ if(IsFull())overflowProcess(); elements[++top]=x;}template<class T>bool Stack<T>::Pop(T& x){ if(IsEmpty())return false; x=elements[top--]; return true;}template<class T>bool Stack<T>::getTop(T& x){ if(IsEmpty())return false; x=elements[top]; return true;}template<class T>ostream& operator<<(ostream& os, Stack<T> &s){//重载输出 os<<"top="<<s.top<<endl; for(int i=0;i<s.top;i++)os<<"第"<<i<<"个元素:"<<s.elements[i]<<endl; return os;}
阅读全文
0 0
- 顺序栈,数组存储栈元素(C++)
- 栈的顺序存储结构(数组)
- C语言实现顺序存储(数组)
- 栈的c语言实现(顺序存储)。。。2014.5.9
- 栈-顺序存储结构-c语言
- 栈-顺序存储结构(C语言实现)
- 栈的顺序存储结构C语言
- 数据结构:线性表(顺序存储)顺序栈类(实现创建,输出,入栈出栈,读栈顶元素功能)
- 数据结构之顺序栈(数组)C++(模板)
- C语言:顺序结构(数组)栈
- 顺序存储结构(栈)
- 数组元素顺序颠倒
- 将一个字符串数组的元素的顺序进行反转(C#)
- c语言 坐标系的转化 数组元素顺序的变换
- 栈的顺序存储结构和操作实现 数组实现
- 栈顺序存储&链式存储
- C语言实现顺序栈及插入数据元素(一)
- 堆栈的顺序存储(数组)
- 在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和Ja
- Corporative Network UVA
- C++ 查看dll导出函数
- Lintcode 二叉树的层次遍历
- 百度云盘分享:MySQL零基础入门视频教程!
- 顺序栈,数组存储栈元素(C++)
- UIView动画只显示结果UIview动画闪现
- C程序设计基础——二维数组的最大值
- 关于Android Recyclerview隐藏item的所在区域显示大空白问题的解决方案
- 幸运抽奖_学习笔记
- hdu 1078 FatMouse and Cheese (dp+dfs)
- Spring定时任务的几种实现 附实例
- LunarConsole使用
- 设计师如何培养良好的设计思维?