【数据结构】·【顺序栈】
发布时间:2020-12-15 06:31:00 所属栏目:安全 来源:网络整理
导读:#includeassert.h#includeiostreamusing namespace std;const int stackIncreament=20;templateclass Tclass SeqStack{public:T *elements;//存放栈中元素的栈数组int top;int maxSize;SeqStack(int sz=50);~SeqStack(){delete[]elements;}void Push(T x);bo
#include<assert.h> #include<iostream> using namespace std; const int stackIncreament=20; template<class T> class SeqStack{ public: T *elements;//存放栈中元素的栈数组 int top; int maxSize; SeqStack(int sz=50); ~SeqStack(){ delete[]elements; } void Push(T& x); bool Pop(T& x); bool getTop(T& x); bool IsEmpty(){ return (top==-1)?true:false; } bool IsFull(){ return (top==maxSize-1)?true:false; } int getSize(){ return top+1; } void MakeEmpty(){ top=-1; } friend ostream& operator<<(ostream& os,SeqStack<T>& s){ os<<"top="<<s.top<<endl; for(int i=0;i<=s.top;i++){ os<<i<<":"<<s.elements[i]<<endl; } return os; } }; template<class T> SeqStack<T>::SeqStack(int sz):top(-1),maxSize(sz){ elements=new T[maxSize]; assert(elements!=NULL); } template<class T> void SeqStack<T>::Push(T& x){ if(IsFull()==true){ cout<<"插不进来!"<<endl; return; }else elements[++top]=x; } template<class T> bool SeqStack<T>::Pop(T& x){ if(IsEmpty()==true) return false; x=elements[top--]; return true; } template<class T> bool SeqStack<T>::getTop(T &x){ if(IsEmpty==true) return false; x=elements[top]; return true; } void main(){ SeqStack<char> seq; int num; cout<<"输入插入栈中的数据个数:"; cin>>num; char start=97; for(int i=0;i<num;i++){ seq.Push(start); start++; } cout<<seq; seq.Pop(start); cout<<seq; } 运行截图:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- scala – 覆盖SBT中的自动API映射
- Angular 2 实验1:Windows 7上安装执行环境
- AngularJS Error: [ng:areq] loginController is not a fun
- import yum\r\nImportError: No module named y
- Wildcard与Regular Expression的区别
- Docker – 从容器修改主机的IPTABLES
- utf-8 – 如何读取和写入Pharo中的Unix域套接字?
- bash:在多个其他字符串中查找字符串
- shell备份数据库
- scala – 如何指定抽象方法的返回类型是子类的类型