二叉树

二叉树

概念

二叉树是一种特殊的树,每次分叉不超过两部分。

结构

  • 根节点
    • 如果一个结点没有子树,那就称为叶子结点。
  • 左子树
  • 右子树

完美二叉树

如果一个二叉树的高度为h,从第二层开始每层结点树都是上一层的两倍。

  • 左子树
    2*x(根节点)
  • 右子树
    2*x(根节点)+1

二叉树的遍历

  • 前序遍历
    概念:首先访问根结点,然后遍历左子树,最后遍历右子树。
    代码实现:
    void pre_order(int x){
    	cout<<x;
    if(t[x].l)pre_order(t[x].l);
    if(t[x].r)pre_order(t[x].r);
    }
    
  • 中序遍历
    概念:首先遍历左子树,然后访问根结点,最后遍历右子树。
    代码实现:
    void order(int x){
    if(t[x].l)order(t[x].l);
    cout<<x;
    if(t[x].r)order(t[x].r);
    }
    
  • 后序遍历
    概念:首先遍历左子树,然后遍历右子树,最后访问根结点。
    代码实现:
    void order(int x){
    if(t[x].l)order(t[x].l);
    if(t[x].r)order(t[x].r);
    cout<<x;
    }
    
posted @   拍手称快  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示