- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4栈及栈的应用实验
实验报告四 栈及栈的应用实验
班级: 2011252 姓名: 李涵茜 学号: 专业: 信息安全
实验目的:
掌握栈的基本操作的实现方法。
利用栈先进后出的特点,解决一些实际问题。
实验内容:(请采用模板类及模板函数实现)
1、栈顺序存储结构的基本操作算法实现
[实现提示] 同时可参见教材p86-p87页的ADT描述及算法实现及ppt)函数、类名称等可自定义,部分变量请加上学号后3位。也可自行对类中所定义的操作进行扩展。
所加载的库函数或常量定义:
(1)栈顺序存储结构的类定义:
template class T
class seqstack
{
private:
T *s;
int top;
int maxsize;
public:
seqstack(int size);
T gettop();
void push(T item);
T pop();
void through();
void broke();
void nothing();
void judge();
void full();
};
(2)构造栈算法
输入:栈元素个数的最大数size
初始化栈:栈顶指示置为-1,创建存储栈的数组,栈元素个数的最大数maxsize置为size;
template class T
seqstack T::seqstack(int size)
{
maxsize=size;
top=-1;
if(maxsize==0)
cout申请数组空间失败!endl;
else
s=new T [maxsize];
}栈不空e
输出:返回栈顶元素template class T
T seqstack T::gettop()
{
return s[top];
}
(4)进栈算法
输入:要进栈的项item
前置条件:栈未满
动作:把item压入栈顶
输出:无
后置条件:栈顶增加一个新元素,栈顶指示加1;
template class T
void seqstack T::push(T item)
{
if(top==maxsize-1)
cout入栈空间不足!endl;
else
top++;
s[top]=item;
}删除栈顶元素返回值template class T
T seqstack T::pop()
{
T e;
if(top==-1)
cout出栈已完成!endl;
else
e=s[top];
top--;
return e;
}template class T
void seqstack T::through()
{
if(top==-1)
cout栈表为空!endl;
for(int i=0;imaxsize;i++)
couts[i]=s[i]endl;
}template class T
void seqstack T::broke()
{
delete [] s;
cout删除栈!endl;
}template class T
void seqstack T::nothing()
{
if(top==-1)
cout栈已空!endl;
else
top=-1;
cout清空栈!endl;
}template class T
void seqstack T::judge()
{
if(top==-1)
{
cout该栈为空栈!endl;
}
else
cout该栈不为空!endl;
}template class T
void seqstack T::full()
{
if(top==maxsize-1)
{
cout该栈已满!endl;
}
else
cout该栈未满!endl;
}void main()
{
seqstack int seq(5);
seq.push(1);
seq.push(2);
seq.push(3);
seq.push(4);
seq.push(5);
seq.through();
seq.judge();
seq.full();
coutseq.gettop();
coutseq.pop();
seq.nothing();
seq.broke();
}
粘贴测试数据及运行结果:
2、用以上基本算法,实现:void conversion()
{//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数;
二进制:void main()
{
int i=11,j=0;
seqst
您可能关注的文档
最近下载
- 《七巧板》完整版教学课件.pptx VIP
- 定时交通灯控制设计.pdf VIP
- 浙大中控DCS系统操作规程.doc VIP
- 学校家长安全责任书.docx VIP
- 北师大版小学数学六年级上册第二单元 分数混合运算 基础测试题.doc VIP
- 2025至2030中国食用油行业运营态势与投资前景调查研究报告.docx VIP
- 10.3 合同的变更、转让、解除和终止(政策与法律法规 第7版).pptx VIP
- 儿童肺炎支原体肺炎诊疗指南2025年版解读PPT课件.pptx VIP
- 深圳初一数学下学期期中模拟测试题(带答案).pdf VIP
- 2023年春国开(甘肃)《个人理财》形考任务1-4题库.docx
文档评论(0)