数据结构栈和队列C语言实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与信息技术学院2016~2017(下)学年
计科专业2015级《数据结构》实验报告 4 学号:2015201018 姓名:汪继超
b=getch();
}
if(!S) free(S);
if(!Q) free(Q);
printf("\n\n谢谢使用,欢迎下次光临!\n"); }
实验结果:
主菜单:
5-1.是回文检测
5-2.不是回文检测
1-1.进制转换模块:
1-2.
注:十进制任意转换为2-9进制,操作如上示例。
2-1.栈的全部操作实现模块:
注:以上所有函数模块,多次调试、修改、优化已全部完成。详情请查阅源代码。
3.逆置实现模块:
4-1.括号匹配成功:
4-2.括号匹配失败:
问题讨论:
1.栈头结点是初始化时开辟空间还是在主函数里面开辟空间?
①初始化时开辟,则需要返回栈指针。
②在主函数里面为其开辟空间,以后每次需要构建栈是都要单独写头结点的开辟。
建议:初始化时一并解决好所有事,主要调用方便。其方便之处见下图:
1-1.写在初始化函数里面
1-2.调用方便体验:
2.栈的打印时,通过出栈打印。打印完就删除完的问题。
解决思路:
(1)新构建一个栈T
(2)每出栈打印一个元素,都将打印的元素入栈T。一直打印完。
(3)将栈T中元素去出栈并入栈到栈S中。
实现:
3.栈和队列相互配合调用中,注意其两者的特点与区别。