zoukankan      html  css  js  c++  java
  • 二叉树及其存储结构

    1.二叉树

    一个有穷的结点集合 。

    注意: 这个集合可以为空,若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。

     

    二叉树的子树有左右顺序之分

    2.特殊二叉树

    • 斜二叉树
    • 完美二叉树(满二叉树)
    • 完全二叉树

    有n个结点的二叉树,对树中结点按从上至下、从左到右顺序进行编号,编号为i(1 ≤ i ≤ n)结点与满二叉树中编号为 i 结点在二叉树中位置相同

    3.二叉树几个重要性质

    1. 一个二叉树第i层的最大结点数为:2 ^(i-1) ; i>=1;

    2. 深度为k的二叉树最大结点总数: ; k>=1;

    3. 对任何非空二叉树 T,若n0表示叶结点的个数、 n2是度为2的非叶结点个数,那么两者满足关系

    4.操作集

    //BT BinTree, Item  ElementType,重要操作有:
    1、 Boolean IsEmpty( BinTree BT ): 判别BT是否为空;
    ​
    2void Traversal( BinTree BT ):遍历,按某顺序访问每个结点;
    ​
    3、 BinTree CreatBinTree( ):创建一个二叉树。 
    ​

    5.常见的遍历

    
    
    void PreOrderTraversal( BinTree BT ): 
    //先序----根、左子树、右子树;
     void InOrderTraversal( BinTree BT ):
     //中序---左子树、根、右子树;
     void PostOrderTraversal( BinTree BT ):
     //后序---左子树、右子树、根
     void LevelOrderTraversal( BinTree BT ): 
     //层次遍历,从上到下、从左到右
  • 相关阅读:
    Bailian 2808 校门外的树(入门线段树)
    C++对运算符进行重载学习笔记
    C++构造函数和析构函数什么情况下会用
    C++ 2048游戏
    输入输出速度统计
    左偏树(可并堆) [模板]
    Luogu [P3622] [APIO2007]动物园
    Luogu [P1248] 加工生产调度
    Luogu [P2814] 家谱
    练习盲打的网站 / 练习打字的网站
  • 原文地址:https://www.cnblogs.com/linwx/p/7910604.html
Copyright © 2011-2022 走看看