二叉树

二叉树

概念

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

结构

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

完美二叉树

如果一个二叉树的高度为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 @ 2024-02-23 16:55  拍手称快  阅读(3)  评论(0编辑  收藏  举报