class AVLNode{ public $data; // 节点数据 public $left = null; // 左子结点 public $right = null; // 右子节点 public $bf = 0; // 平衡因子BF public $parent = null; // 存储 ...
分类:
其他好文 时间:
2019-12-24 10:19:12
阅读次数:
74
题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 这道题比较考验思维。平衡二叉树的条件是左、右子树的深度差不大于1,所以我们首先需要计算出二叉树的深度。而这道题需要返回的并不是深度,而是一个布尔值,因此我们初始认为这棵树是平衡的,在计算深度的过程中,如果发现左、右子树的深度大于1了,就将答案置为 ...
分类:
其他好文 时间:
2019-12-23 13:12:29
阅读次数:
113
前面几篇关于数据库底层磁盘文件读取,数据库索引实现细节进行了深入的研究,但是没有串联起来的讲解为什么数据库索引会采用B树和B+树而不是其他的数据结构,例如平衡二叉树、链表等,因此,本文打算从数据库文件存储以及读取说起,讲解数据库索引的由来。 我们以抛出问题的形式开始讲解: (1)数据库文件存储的方式 ...
分类:
数据库 时间:
2019-12-20 15:21:20
阅读次数:
92
public boolean IsBalanced_Solution(TreeNode root) { return getDepth(root) != -1; } private int getDepth(TreeNode root) { if (root == null) return 0; i ...
分类:
编程语言 时间:
2019-12-18 14:58:09
阅读次数:
97
题目: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 分析: 可以从根节点开始遍历每一个节点,求得节点左右子树的最大高度,判断是不是平衡二叉树。这样做的问题在于会重复遍历节点,造成不必要的浪费。 所以可以采用后续遍历来求解此题,判断子树是否是平衡二叉树,如果是,就返回子树的最大高度,不是的话,就中 ...
分类:
编程语言 时间:
2019-12-16 22:54:44
阅读次数:
162
1算法 排序 选择排序 冒泡排序 希尔排序2数据结构 数组 集合 队列 栈 先进后出 堆 (堆是一种经过排序的树形数据结构) 完全二叉树 平衡二叉树 红黑树 3设计模式 工厂模式 单例模式 代理模式 策略模式 (我理解的只有这几个) 迭代器模式 (工作中没有具体使用 只有粗略的使用到) 工厂模式:工 ...
分类:
其他好文 时间:
2019-12-13 23:23:48
阅读次数:
116
数据结构 树(上) 一、概述 主要内容包含树的基本概念、二叉树(平衡二叉树、完全二叉树、满二叉树)、搜索树(二叉搜索树、平衡搜索树、AVL树、伸展树、(2,4)树、红黑树)、(a,b)树、B树等实际运用的树数据结构 二、基本知识(树的定义和属性) 1、树(非线性数据结构)运用于一些算法实现的效率会比 ...
分类:
其他好文 时间:
2019-12-08 11:01:30
阅读次数:
119
平衡二叉树 今天有同学问了我如何构造平衡二叉树,总结如下: 平衡因子 BF(balance factor)为该节点左子树高度 右子树高度,绝对值如果 ≤ 1,则二叉树不需要调整。 平衡二叉树构造过程比较简单,分为四种情况: LL 插入 RR 插入 LR 插入 RL 插入 用实例解释一下四种情况的调整 ...
分类:
编程语言 时间:
2019-12-04 20:04:55
阅读次数:
62
package com.rao.linkList; /** * @author Srao * @className AvlTree * @date 2019/12/3 21:23 * @package com.rao.linkList * @Description 二叉平衡树 */ /** * 定义 ...
分类:
编程语言 时间:
2019-12-03 23:26:15
阅读次数:
81