栈类模板实现含界面资料.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C++程序设计》实验报告 姓名:庹磊 学院:计算机智能 学号:2013211732 时间:2014-2015(2) 指导教师:冯潇 1题目:(类模板的使用)实现栈数据结构,功能可以包括入栈、出栈、清空栈等动作。 2思路:堆栈的定义设计 template class Type class seqstack { public: seqstack(); //创建一个空栈 seqstack(int size); //创建一个可以容纳size个元素的栈 ~seqstack(); //析构函数 bool create(int size); //实际创建一个可以容纳size个元素的栈 void destroy(); //栈的销毁 bool isempty() const; //确定栈是否为空 bool isfull() const; //确定栈是否已满 bool push(Type item); //数据进栈 bool pop(); //数据出栈 bool pop(Type item); //数据出栈,并返回出栈前的栈顶数据 bool gettop(Type item); //显示当前栈顶元素 void display(); //显示所有数据元素 private: Type *stackspace; //指向栈的指针 int stacksize; //栈的大小,当为0时,表示栈没有创建空间 int top; //top栈顶位置,当为-1时,栈为空 }; 功能实现代码 //栈的初始化 templateclass Type //此语句关键,需注意 seqstackType::seqstack() { stackspace=NULL; stacksize=0; top=-1; } //创建一个空栈 templateclass Type seqstackType::seqstack(int size) { stackspace=NULL; stacksize=0; top=-1; create(size); } //栈的析构函数 templateclass Type seqstackType::~seqstack() { destroy(); } //实际栈的创建函数 templateclass Type bool seqstackType::create(int size) { if(stacksize) //栈已经创建,不能继续创建 return false; if(size=0) //size的值必须大于0 return false; stackspace=new Type[size]; if(!stackspace) //没有申请到存储空间(栈已满) return false; stacksize=size; top=-1; return true; } //销毁栈的函数 templateclass Type void seqstackType::destroy() { if(stackspace) delete []stackspace; stackspace=NULL; top=-1; stacksize=0; } //判断栈是否为空 templateclass Type bool seqstackType::isempty() const { if(!stackspace) return true; return top=0?false:true; } //判断栈是否已满 templateclass Type bool seqstackType::isfull() const { if(!stacksize) //确定栈是否被创建,没有创建是为已满 return true; return top==stacksize-1?true:false; } //进栈函数 templateclass Type bool seqstackType::push(Type item) { if(!stackspace) return false; if(isfull()) return false; stackspace[++top]=item; return true; } //出栈函数,不返回栈顶元素 templateclass Type bool seqstackType::pop() { if(empty()) return flase; top--; return ture; } //出栈函数,但返回栈

文档评论(0)

33894522 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档