`
kmplayer
  • 浏览: 514595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断一颗树是否为平衡二叉树

 
阅读更多
1,实例代码:
//返回树的最大深度
int maxDepth(Node* root)
{
    if (root == NULL)
        return 0;
    ld = maxDepth (root -> left);
    rd = maxDepth (root -> right);
    return 1 + (ld > rd ? ld : rd);
}
bool isBlance(Node* root)
{
    int d = maxDepth(root -> left) - maxDepth(root -> right);
    if ( (d < -1) || ( d > 1)
        return false;
    else
        return (isBlance(root -> letf) && isBlance(root -> right));
}


分享到:
评论

相关推荐

    写一算法,判断一棵二叉树是否是一棵二叉排序树。

    根据给定的文件信息,我们将深入探讨如何通过不同的方法来判断一棵二叉树是否为二叉排序树(Binary Search Tree, BST)。二叉排序树是一种特殊的二叉树,它满足以下条件: 1. 若左子树不为空,则左子树上所有节点的...

    JAVA判断二叉树是否是二叉平衡树

    在Java编程中,二叉平衡树(Balanced Binary Tree)是一种特殊的二叉树,它的左右两个子树的高度差不超过1,并且左右两个子树都是一棵平衡二叉树。这样的结构保证了数据的查找、插入和删除操作具有较高的效率。在本...

    平衡二叉树判断1

    在LeetCode平台上,有一个经典的问题,即判断一棵二叉树是否是平衡二叉树。这个问题的解决方法有多种,但是最常见的方法是递归遍历二叉树,计算每个节点的深度,然后比较左右子树的深度差。如果深度差超过1,则该树...

    二叉排序树与平衡二叉树的实现

    本次实验是利用二叉排序树和平衡二叉树达到以下目的:(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;(2)对二叉排序树T作中序遍历,输出结果;(3)计算二叉排序树T查找成功的平均查找长度,输出结果...

    课设 - 平衡二叉树的演示 .docx

    7. **合并与分裂**:在选做部分,可以实现将两棵平衡二叉树合并成一棵新的平衡二叉树,或者将一棵树分裂为两棵,其中一棵包含所有小于或等于指定关键字x的节点,另一棵包含所有大于x的节点。 **二、算法设计** 在...

    实验四 平衡二叉树演示.pdf

    合并操作通常涉及将一棵树作为另一棵树的子树插入,同时确保合并后的树依然保持平衡。 输入数据格式如下: - 树中元素的值为float型。 - 树的名称为char类型,长度不超过20位。 - 操作菜单选项为0到7的整数,其中0...

    平衡二叉树排序树操作的演示

    1. BSTreeEmpty(BSTree T):判断树是否为空。 2. BSTreeDepth(BSTree T):返回树的深度。 3. LeafNum(BSTree T):返回树的叶子结点数。 4. NodeNum(BSTree T):返回树的结点数。 5. DestoryBSTree(BSTree *T):销毁...

    js代码-13.1 判断是否为平衡二叉树

    题目“js代码-13.1 判断是否为平衡二叉树”要求编写JavaScript代码来实现一个函数,这个函数接收一个二叉树的根节点作为输入,然后判断该树是否为平衡二叉树。这个问题可以通过递归的方式来解决。 以下是一个简单的...

    平衡二叉树

    平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树,它的左右两个子树的高度差不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树能够保证在进行查找、插入或删除操作时,所需的时间复杂度为O(logn)...

    java-leetcode题解之第110题平衡二叉树.zip

    在本压缩包中,我们关注的是Java编程语言与LeetCode平台上的第110题——“判断一棵二叉树是否是平衡二叉树”。平衡二叉树是一种特殊的二叉树结构,它的左右两个子树的高度差不超过1,并且左右两个子树都是一棵平衡...

    第六章 树和二叉树作业及答案(100分).docx

    - **题目描述**:询问完全二叉树是否一定是平衡二叉树、二叉排序树、堆或哈夫曼树。 - **答案解析**:完全二叉树不一定是平衡二叉树(选项A)。完全二叉树是指除最后一层外,其余各层都是完全充满的,且最后一层的...

    实验四 平衡二叉树演示.doc

    可以先将一棵树插入另一棵树中,然后根据需要进行平衡调整。 6. **数据输入与输出**:输入数据包括树的元素值、树的数量和名称、操作选项等。输出是树的结构图和操作结果,显示在显示器上。 7. **数据结构**:实验...

    数据结构《数据结构》经典算法代码.zip

    【数据结构】《数据结构》经典算法代码.zip 栈 待更新 队列 括号匹配(搞定) 用栈实现递归式的非递归代码P90 树 的考察在于各种树的特点,以及树的遍历算法 ...判断一棵树是否为平衡二叉树 (2019-9-6)

    15_平衡二叉树.pdf

    平衡二叉树是一种特殊的二叉树,其特点在于任意节点的左右两个子树的高度差的绝对值不超过1。这样的性质保证了数据在树中的分布相对均匀,使得在查找、插入和删除操作上都能保持较高的效率。在计算机科学中,平衡...

    msyyyy#learning-plan#平衡二叉树1

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路每个节点左树和右树的深度差不超过1int diff = left-right;

    三种判断完全二叉树的方法的实现与分析

    因此,判断一棵树是否为完全二叉树非常重要。 本文将介绍三种判断完全二叉树的方法的实现与分析,分别是层次遍历法、深度遍历法和递归法。 一、层次遍历法 层次遍历法是判断完全二叉树的最普遍方法。该方法的基本...

    数据结构辅导资料(讲义、笔记、习题)

    这类题目有助于理解数据结构的实际运用,比如如何设计一个有效的哈希函数,如何判断一棵树是否为平衡二叉树,或者如何解决最短路径问题。 上机试题则进一步强调实践能力,可能包括编写代码来实现数据结构操作,如...

    构造二叉树与遍历二叉树

    - **判空操作**:`IsEmpty()`方法用来判断当前二叉树是否为空。 - **获取根节点**:`Root()`方法返回二叉树的根节点数据。 - **构建二叉树**:`MakeTree()`方法用来创建一个二叉树节点,并将指定的数据和两个子树...

    广工数据结构实验平衡二叉树的操作演示完整版含有源代码,报告

    7. creat_BSTree构建一棵平衡二叉树。 8. inorder函数在中序遍历过程中将节点分配到两个不同的AVL树中,用于分裂操作。 9. divide_BSTree函数则完成二叉搜索树的分裂。 实验的【评价标准】包括方案设计的合理性、...

    java前序中序构造二叉树

    本话题主要涉及使用Java语言,通过给定的前序和中序遍历结果来构造二叉树,以及对构造出的二叉树进行后序遍历和判断是否为平衡二叉树。以下是关于这些知识点的详细解释: 1. **二叉树**: 二叉树是一种特殊的树形...

Global site tag (gtag.js) - Google Analytics