平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。 最小不平衡子树:指离插入节点最近且以平衡因子的绝对值大于1的节点作为根的子树。 平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然 ...
分类:
其他好文 时间:
2017-12-16 14:48:18
阅读次数:
124
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 代码实现:tree.js 代码是基于es6写的: "use s ...
分类:
编程语言 时间:
2017-12-14 00:04:18
阅读次数:
240
查找基本分类如下: 1. 线性表的查找 顺序查找 折半查找 分块查找 2. 树表的查找 二叉排序树 平衡二叉树 B树 B+树 3. 散列表的查找 今天介绍 二叉排序树 。 二叉排序树 ( Binary Sort Tree ) 又称为 二叉查找树 ,它是一种对排序和查找都很有用的特殊二叉树。 1. 二 ...
分类:
其他好文 时间:
2017-12-02 16:19:27
阅读次数:
192
一。题目要求: 输入一棵二叉排序树,现在要将该二叉排序树转换成一个有序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。 ...
分类:
其他好文 时间:
2017-11-16 18:32:41
阅读次数:
82
二叉树是十分重要的数据结构,主要用来存放数据,并且方便查找等操作,在很多地方有广泛的应用。 今天主要写的最基本的二叉树,后续会继续写线索二叉树,二叉排序树,平衡二叉树等。 二叉树的建立思路仍然是采用的递归的思想,给定一个指向根节点的指针,然后递归调用ceate()函数,自动生成一个二叉树。就像是在地 ...
分类:
其他好文 时间:
2017-11-12 20:14:01
阅读次数:
174
要理解红黑数,先要了解二叉查找树,二叉查找树(BST)具备什么特性呢? 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 下图中这棵树,就是一颗典型的二叉查找树: 1.查看根节点9: 2.由于10 > 9, ...
分类:
其他好文 时间:
2017-11-09 18:36:14
阅读次数:
123
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 分析: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子 ...
分类:
其他好文 时间:
2017-10-29 14:38:57
阅读次数:
96
#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h" #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#de ...
分类:
编程语言 时间:
2017-10-08 16:11:40
阅读次数:
234
一、题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二、思路 1、二叉搜索树又称二叉排序树(Binary Sort Tree)或二叉查找树(Binary Search Tree)。二叉搜索树或者是一棵空 ...
分类:
其他好文 时间:
2017-10-06 22:26:47
阅读次数:
119
今天没花20分钟,就把BST的代码写出来了。毕竟寒假学了一遍,脑子里有影响,也很好理解。 只是出现了两个问题: 1.我在编写while循环的时候,就想到了新建叶子节点之后就break。但是,我又“机智”的想到,while(parent!=null)语句就可以检测循环的结束了,不关有没有新建叶子节点, ...
分类:
编程语言 时间:
2017-10-05 21:58:41
阅读次数:
296