• 树的概念


    定义:

    树:连通无回路的无向图是一棵树.

    森林:若图G中至少有两个连通分支,每个连通分支都是树,则称图G是森林.

    根:树中的根是树的一个节点,任意节点都可以为根,根据不同问题可以选择树的一个顶点为根.

    子节点&父节点:树根为0层,直接和树根相连的节点为根节点的子节点,根节点为其父节点,根节点的子节点为树的1层.对于除了根节点以外的节点u来说,直接与其相连的节点中,除了一个父节点以外的所有节点都是u的子节点,u节点的子节点的层数为u节点的层数加1.

    子树:对于树中的一个节点u来说,包含其一个儿子节点以及儿子节点的所有后辈节点的树称为节点u的子树.

    兄弟节点:同一父节点的子节点.

    叶子节:没有子节点的节点称为叶子节点.

    分支节点:除了根节点和叶子节点之外的所有节点都称为分支节点.

    树高:树的总层数.

    二叉树:如果每个节点的儿子节点不多于两个,则称这棵树为二叉.每个父节点的子节点用左右儿子节点来加以区分,以左儿子节点为根的子树称为左子树,以右儿子节点为根的树称为右子树.

    满二叉树:如果一个二叉树的任何节点或者树叶,或者恰好有两颗非空子树,则此二叉树称为满二叉树.

    完全二叉树:如果一棵二叉树最多只有最下面的两次节点度数小于2,并且最下面一层的节点都集中在该层的最左边的连续位置,成称其实完全二叉树.

    性质:

    对于一棵有N个节点的树,一定有(N - 1)条边,如果删去一条边,将变成两棵树;如果添加一条边.将出现唯一一条回路.

    树上任意两个顶点之间存在唯一路径.

    在二叉树的第i层上至多有2^(i - 1)个节点(i >= 1).

    深度为k的二叉树至多有2 ^ k - 1个节点(k >= 1).

    对于任何一个二叉树,如果其叶子节点的数目为n0,度为2的节点数目为n2,则有n0 = n2 + 1.

    具有n个节点的完全二叉树的深度为(int)log2(n) + 1.

    树的遍历:

    二叉树的遍历1)前序遍历

      前序遍历的递归定义:对于一个节点,访问并输出根的信息;按照前序遍历左子树;按照前序遍历右子树.

    2)中序遍历

      中序遍历的递归定义:对于一个节点,按照中序遍历左子树;访问并输出根的信息;按照中序遍历右子树.

    3)后序遍历

      后序遍历的递归定义:对于一个节点,按照后序遍历左子树;按照后续遍历右子树;访问并输出根的信息.

    总结:对于二叉树的三种遍历次序来说,整棵树的根一定是前序遍历序列的第一个节点,一定是后序遍历序列的最后一个节点.在中序遍历序列中,根节点前面的点一定属于根的左子树,根节点后面的点一定属于右子树.只要回到一棵二叉树的中序遍历序列和前序(或者后序)遍历序列,就可以唯一的确定二叉树的结构并写出另一种遍历序列.否则不能确定.

      上述的三种遍历方式,除了中序以外都可以扩展到k叉树(每个节点的子节点个数都小于或者等于k)上.

  • 相关阅读:
    windows的端口映射
    windows的ics
    关于windows的右键菜单项 注册表删除
    dig的使用 openwrt
    linux环境变量相关
    Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1
    openwrt ipv6
    ros资料参考
    ipv6的相关参考资料
    supervisor
  • 原文地址:https://www.cnblogs.com/Ash-ly/p/5459688.html
Copyright © 2020-2023  润新知