二叉树非递归遍历

二叉树非递归遍历的几个要点:

1)  不管前序、中序还是后序,它们的遍历路线(或者说是回溯路线,先沿左边一直走到尽头,然后回溯到某节点,并跳转到该节点的右孩子(如果有的话),然后又沿着这个有孩子的左边一直走到尽头)都是一样的。

2)  明确每次回溯的目的。比如,前序回溯的目的是为了访问右子树;中序回溯的目的是为了先访问根节点,后访问右子树;后序回溯的目的是为了先访问右子树,后访问根节点。

3)  有了12)知识之后,就比较容易进行分析。比如,前序中回溯的目的是为了访问右子树,所以当回溯到某点的时获取了该节点的右孩子之后,该节点就没有用了。所以可以直接出栈。中序中回溯到某节点时,访问完根节点并获取右子树之后,该节点也就没用了,可以直接出栈。后序中回溯到某节点时,因为要先访问完右子树后才访问根节点,所以根节点不能立即出栈,而要做一个标记(在其上边放置一个空指针0),当从左子树回溯回来时再访问该节点。

 

一、二叉树的构造

二、三种方法非递归遍历二叉树

三、main函数测试

四、三种非递归遍历二叉树算法的伪代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值