顺序栈的基本操作.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 顺序栈的基本操作 #includeiostream #includecassert using namespace std; const int stackIncreament=20; const int maxSize=50; template class T class Stack { public: Stack(int sz=50); ~Stack() {delete[]elements;} void Push(const T x); int Pop(); int getTop(); 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;} void print(StackT s); void Meun(); private: T *elements; int top; int maxSize; void overflowProcess(); }; template class T StackT::Stack(int sz):top(-1),maxSize(sz) { elements=new T[maxSize]; assert(elements!=NULL); }; template class T void StackT::overflowProcess() { T *newArray = new T[maxSize + stackIncreament]; if (newArray=NULL) { cerr存储分配失败!endl; exit(1); } for (int i=0;i=top;i++) { newArray[i] = elements[i]; } maxSize = maxSize +stackIncreament; delete []elements; elements = newArray; }; template class T void StackT::Push(const Tx) { if (IsFull()==true) overflowProcess(); elements[++top] = x; }; template class T int StackT::Pop() { return elements[top--]; }; template class T int StackT::getTop() { return elements[top]; }; template class T void StackT::print(StackT s) { for(int i=s.top;i=0;i--) couts.elements[i] ; coutendl; }; template class T void StackT::Meun() { cout************菜单************endl; cout1-输出栈内元素(栈顶到栈尾)endl; cout2-元素进栈(最大为)endl; cout3-元素出栈endl; cout4-读取栈顶元素endl; cout5-得到栈中元素个数endl; cout6-清空栈endl; cout0-退出endl; cout****************************endl; cout请输入功能序列号:; }; #includeStack.h void main() { Stackint A(50); int choice,x; A.Meun(); cinchoice; while(choice!=0) { switch(choice) { case 1: cout从栈顶到栈尾元素的输出为:endl; A.print(A); break; case 2: cout请输入要压入栈的元素:; cinx; A.Push(x); break; case 3: cout弹出的元素是:A.Pop()endl; break; case 4: cout栈顶元素是:A.getTop()endl; break; case 5: cout栈中元素个数是:A.getSize()endl; break; case 6:

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档