数据结构栈和队列C语言实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.栈和队列相互配合调用中,注意其两者的特点与区别。

相关文档
最新文档