6)二叉树非递归遍历

1)  我们举例子的图片还是这张图片:
  

      

2)然后  我们讲解一下 普通的先序遍历

      (1)首先有一个栈,来存节点信息

      (2)然后我们是按照先序遍历的,首先存的是A,我们将A入栈时,同时给这个节点加一个标志  就是FALSE

      (3)然后将A的左子树和右子树也入栈,因为先序是DLR,要是你想按照这个顺序输出,就得是按照RLD的顺序入栈,同时将A的标志由FALSE改为TRUE,现在栈的顺序就是

  

          

      (4)然后就是将B出栈,同时改为TRUE,同时将B的左子树和右子树入栈,现在栈的顺序是:
        

             

        5)然后就是C--->false出栈,同时将他改为TRUE,将C的左子树和右子树入栈

  

              

      (6)后面的顺序和之前的思路一样,就是入栈和出栈

 

然后代码展示:

    

 

 

 

转载于:https://www.cnblogs.com/xiaoyoucai/p/8555976.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值