建立一棵含有n个结点的二叉树,采用二叉链表存储;
输出前序、中序、后序、、层序遍历该二叉树的遍历结果。
定义二叉树的数据类型——二叉树结点结构体BiNode。建立二叉链表可以采用扩展二叉树的一个遍历序列,例如前序序列,将扩展二叉树的前序序列由键盘输入,建立该二叉树的二叉链表存储。
简单起见,本实验假定二叉树的数据元素为char型
用模板类改写
![61e187635e2662cfac0cc3966f2a27e6.png](https://i-blog.csdnimg.cn/blog_migrate/b49b2e61a432ac74cb6f2aa9a0bea60e.jpeg)
创建一个拓展二叉树,我们用#来代指虚结点:
![a48e2b8244ec1a9862a3cca1a663db33.png](https://i-blog.csdnimg.cn/blog_migrate/542fb278b80b55ca8f4d7a4e423659ee.jpeg)
前序遍历的实现:
![15604a60594ff8a1233c605def6b5477.png](https://i-blog.csdnimg.cn/blog_migrate/3d6ef64eff5ac36bf49b1b35cc97a339.jpeg)
中序遍历的实现:
![6aa320150a8fa40f9232c60eeebef56c.png](https://i-blog.csdnimg.cn/blog_migrate/1cbb92fc43b580ffa29b4a5d4b21357a.jpeg)
后序遍历的实现:
![f0b8e5de3ab9d8a16d58a2d91378e3f4.png](https://i-blog.csdnimg.cn/blog_migrate/b7f71d6156929e9e760577a9f95a250a.jpeg)
层序遍历的实现:
![806bc370222ea74ef1bb6e6dcdffbebe.png](https://i-blog.csdnimg.cn/blog_migrate/e477353a2b07c059600ab494600097a1.jpeg)
程序主函数部分代码:
![1fd56d91d3ce4426c04fb1ce4a8fc657.png](https://i-blog.csdnimg.cn/blog_migrate/1c8b4f4fd2924860308409090962df72.jpeg)
结果:
该二叉树的根节点是:a
该二叉树的前序遍历是:a b d e c f
该二叉树的中序遍历是:d b e a c f
该二叉树的后序遍历是:d b e c f a
该二叉树的层序遍历是:a b c d e f
本文就到这里,希望此案例的展示对你有帮助!
想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程千人羣(Q艘索:C语言编程学习聚集地(无言建立))你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。
![00923bbb409ee86f37741893e5a2a633.png](https://i-blog.csdnimg.cn/blog_migrate/038b09d916195d44fe5b5c5f83a8f437.jpeg)