二叉树非递归使用常数存储空间遍历

本文介绍了一种使用常数存储空间的非递归方法遍历二叉树,通过方向值orien记录搜索路径,按照后序遍历顺序进行。程序展示了在给定的二叉树上应用此方法的示例,并提供了插入和遍历操作。
摘要由CSDN通过智能技术生成

 

主要使用了一个方向值orien,记录在二叉树中搜索时的路径方向,比如由父节点到左子树时orien值为1,这样按照严格的行走规则,在一个while循环里就能遍历整棵树。

    一个简单的例子:

    一棵树为:            8

                  4             12

              2       6     10       14

             1 3     5 7   9  11   13  15

    那么程序将采用一个相当于后序遍历的顺序对树进行遍历,对于一个节点,将先搜索左子树,再搜索右子树,然后输出该节点的值。根据orien值的不同,对遍历的下一步走向进行

    选择,具体看printTree中的while循环。对于上面这棵树,输出顺序为:1 3 2 5 7 6 4 9 11 10 13 15 14 12 8。

    程序没有测试一些特殊情况,可能存在bug,欢迎指正;若有啥问题欢迎交流!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值