关于二叉树的递归输出

4 篇文章 0 订阅

我一直不太懂递归,这次在树的学习中我对他有了一点新的认识,我的启发点是从下面这篇微博开始的关于递归输出二叉树,这里转载一下表示感谢!!!

https://blog.csdn.net/allenchenhh133/article/details/80291252

读完它的博文之后其实我还没有真正的了解因为我还有一点小疑惑,那就是在第一层进入第二层再进入第三层再继续往下走一直到某一层结束这一直处理的都是左子树,他是如何又来处理右子树的呢??????

后来我自己写代码的时候又花了时间才想明白了。

下面是我在写递归输出二叉树时,慢慢的学习了   他和栈之间的关系,继而知道他具体是怎么运行的    

然后写的一点东西:

比照这这串代码

我会在main函数中调用DisTree将我已将建立的二叉树的根结点作为实参
void DisTree(Tree *b)
{
    if(b!=NULL)
    {
        printf("b->data"); //当前的根节点
        if(b->ld!=NULL||b->rd!=NULL)
        {
            printf("(");
            DisTree(b->ld);//递归,我在这里提一下如果做做字数为空的就相当于没有这行代码!!!会执行下面的内容。
            //通过学习我了解到当该行调用函数代码执行完以后
            if(b->rd!=NULL)
                printf(",");
            DisTree(b->rd);
            printf(")");
        }
    }
}

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值