计算机中的栈的模板,栈类模板实现含界面.doc

《C++程序设计》实验报告

姓名:庹磊学院:计算机智能科学类班级:0401310学号:2013211732时间:2014-2015(2)指导教师:冯潇

1题目:(类模板的使用)实现栈数据结构,功能可以包括入栈、出栈、清空栈等动作。

2思路:堆栈的定义设计template 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时,栈为空};功能实现代码//栈的初始化template //此语句关键,需注意seqstack::seqstack() { stackspace=NULL; stacksize=0; top=-1;}//创建一个空栈templateseqstack::seqstack(int size){ stackspace=NULL; stacksize=0; top=-1; create(size);}//栈的析构函数templateseqstack::~seqstack(){ destroy();}//实际栈的创建函数templatebool seqstack::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;}//销毁栈的函数templatevoid seqstack::destroy(){ if(stackspace) delete []stackspace; stackspace=NULL; top=-1; stacksize=0;}//判断栈是否为空templatebool seqstack::isempty() const{ if(!stackspace) return true; return top>=0?false:true;}//判断栈是否已满templatebool seqstack::isfull() const{ if(!stacksize) //确定栈是否被创建,没有创建是为已满 return true; return top==stacksize-1?true:false;}//进栈函数templatebool seqstack::push(Type &item){ if(!stackspace) return false; if(isfull()) return false; stackspace[++top]=item; return true;}//出栈函数,不返回栈顶元素templatebool seqstack::pop(){ if(empty()) return flase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值