完全二叉树

时间:2024-06-15 01:10:20编辑:小星

完全二叉树的定义是什么?

完全二叉树的定义是一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同。从满二叉树和完全二叉树的定义可以看出,满二叉树是完全二叉树的特殊形态,即如果一棵二叉树是满二叉树,则它必定是完全二叉树。完全二叉树判定1、如果树为空,则直接返回错。2、如果树不为空:层序遍历二叉树。3、如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列。4、如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树。5、如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空,且则该节点之后的队列中的结点都为叶子节点,该树才是完全二叉树,否则就不是完全二叉树。

完全二叉树与满二叉树的区别是什么?

1、含义不同:完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。2、表示不同:对于满二叉树,除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。而完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。判断一棵树是否是完全二叉树的思路1>如果树为空,则直接返回错2>如果树不为空:层序遍历二叉树2.1>如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列;2.1>如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树;2.2>如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空,且则该节点之后的队列中的结点都为叶子节点,该树才是完全二叉树,否则就不是完全二叉树;以上内容参考:百度百科-完全二叉树

上一篇:哈弗coupe c

下一篇:深圳的旅游景点