zoukankan      html  css  js  c++  java
  • 二叉树相关面试题(一)

    1.  二叉树定义

        n个节点的有限集合,该集合或者为空集,

        或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成

    2.  二叉树特点

        3个节点的二叉树的5个形态

        A          A                    A                    A        A

       /  \        /        /         \         \

       B    C       B       B            B          B

                 /         \          /           \

                C          C        C            C

    3.  特殊二叉树

        斜树

          定义:所有节点都只有左子树的二叉树叫左斜树。所有节点都只有右子树的二叉树叫右斜树。

          特点:节点的个数和二叉树的深度相同;每一层只有一个节点。

        满二叉树

          一棵二叉树中,如果所有分支结构点都存在左子树和右子树,并且所有叶子都在同一层上,

          这样的二叉树称为满二叉树

        完全二叉树

          定义:对于深度为K的,有N个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中,

             编号从1至n的结点相等—完全二叉树

          特点:叶子节点只能出现在最下两层

             最下层的节点一定集中在左部连续位置

             倒数第二层,若雨叶子节点,一定都在右部连续位置

               如果结点度为1,则该结点只有左孩子,即不存在只有右子树的情况

               同样结点数的二叉树,完全二叉树的深度最小

        二叉查找树(二叉排序树)

          二叉排序树又称二叉搜索树,即在树的任何一个结点,都满足左子树小于根,根小于右子树。排序二叉树可以作为Map的关键码。

          主要的作用是快速的查找(相当于二分法)

        最优二叉树(哈夫曼树)

          带权路径长度最短的树。利用哈弗曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本

        平衡二叉树(AVL)

          一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树称为平衡二叉树

        红黑二叉树

          一种自平衡二叉查找树,在计算机科学中广泛使用到的一种数据结构。它是每个节点都带有颜色属性的二叉树,颜色分为红色或者黑色

          在二叉查找树强制一般要求以外,红黑树还有如下要求:

          1.节点是红色或黑色

          2.根是黑色

          3.每个叶节点都是黑色

          4.每个红色节点的两个子节点都是黑色

          5.从任一节点到每个叶子的所有路径都包含相同数目的黑色节点。

          这些约束强制了红黑树的关键性质:从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。

          因为操作比如插入、删除和查找某个值的最坏情况是都要求与树的高度成比例,时间复杂度为O(logn).这个在高度上的理论上限允许

          红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。

          最常用持久的数据结构之一,用于构造关联数组和集合。

  • 相关阅读:
    svn command line tag
    MDbg.exe(.NET Framework 命令行调试程序)
    Microsoft Web Deployment Tool
    sql server CI
    VS 2010 One Click Deployment Issue “Application Validation did not succeed. Unable to continue”
    mshtml
    大厂程序员站错队被架空,只拿着五折工资!苟活和离职,如何选择?
    揭秘!Windows 为什么会蓝屏?微软程序员竟说是这个原因...
    喂!千万别忘了这个C语言知识!(~0 == -1 问题)
    Linux 比 Windows 更好,谁反对?我有13个赞成理由
  • 原文地址:https://www.cnblogs.com/daimingming/p/3246107.html
Copyright © 2011-2022 走看看