教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

数据结构实验报告 堆栈和队列(2)

来源:网络收集 时间:2026-07-19
导读: assert(top); top-data=x; top-next=NULL; } height++;} //出栈函数 templateclass t1 bool linkstackt1::pop(t1x) {stacknodet1 *p; if(height) {x=top-data; p=top; top=top-next; delete p; height--; return tr

assert(top);

top->data=x;

top->next=NULL;

}

height++;}

//出栈函数

template<class t1>

bool linkstack<t1>::pop(t1&x)

{stacknode<t1> *p;

if(height)

{x=top->data;

p=top;

top=top->next;

delete p;

height--;

return true;}

else

return false;

}

int main()

{linkstack<char> a;

char c,d;

cout<<"请输入算式,以#结束"<<endl;

cin>>c;

while(c!='#')

{ if(c=='('||c=='['||c=='{')

a.push(c);

if(c==')')

{a.pop(d);

{if(d==c-1);

else {a.push(d);a.push(c);}

}

}

if(c==']'||c=='}')

{a.pop(d);

{if(d==c-2);

else {a.push(d);a.push(c);}

}

}

cin>>c;

}

if(a.isempty()){cout<<"括号配对"<<endl;}

else {cout<<"括号错误"<<endl;}

}

测试用例:

1题测试用例1.

输入整数的个数 5;

输入数值为 5 30 60 90 110

程序运行结果:

题测试用例2.

输入链表长度为3;

输入数值为 5 10 60

程序运行结果:

2题测试用例1

输入产生的随机数的个数 20;

程序运行结果:

3题测试用例1.

输入算式 5*{8+[3+4*(3+5)+3]+4}=#

程序运行结果:

3题测试用例2.

输入算式3+(4*[5+6)]=#

程序运行结果:

3题测试用例3.

输入算式 3+(4*5=#

程序运行结果:

实验小节:

1题程序对输出时栈空进行了相应处理,体现了程序的健壮性。

2题中有产生随机数的相关操作,掌握了产生随机数的操作。

3题中输入时采用了以#为标志结束,无需计数输入算式的长度,方便自然。

通过对本程序的练习,更好地掌握了链栈链队的概念和相关操作,对链栈的进栈出栈、链队的进队出队有了更深刻的认识。

数据结构实验报告 堆栈和队列(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/133851.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)