【数据结构】——排序算法——1.2、二叉树排序
一、先上维基的图:二叉树排序wiki
图一、二叉树排序
二、描述
二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered
binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树:
若任意节点的左子...
分类:
编程语言 时间:
2015-05-21 10:52:21
阅读次数:
190
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.解题思路:用一个有序数组,创建一个平衡二叉查找树。为确保平衡,需要满足两子树的高度差不大于1,可以通过设置...
分类:
其他好文 时间:
2015-05-21 06:37:05
阅读次数:
123
红黑树的平衡红黑树首先是一棵二叉查找树,它每个结点都被标上了颜色(红色或黑色),红黑树满足以下5个性质:1、每个结点的颜色只能是红色或黑色。2、根结点是黑色的。3、每个叶子结点都带有两个空的黑色结点(被称为黑哨兵),如果一个结点n的只有一个左孩子,那么n的右孩子是一个黑哨兵;如果结点n只有一个右孩子...
分类:
其他好文 时间:
2015-05-21 06:36:45
阅读次数:
141
红黑树红黑树算是用的比较多,但是平时自己很少写的一种数据结构了,先看下介绍:
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
看~ 典型是用来实现关联数组,能想到什么数据结构呢?list map set这些容器的底层都是红黑树来实现的。红黑树和AVL树(平衡二叉查找树)红黑树并不是完全平衡的一棵树,所以红黑树是在平均...
分类:
其他好文 时间:
2015-05-19 20:57:02
阅读次数:
222
二叉查找树的一个用途就是记录一组数据集中数据出现的次数。比如记录成绩的分布,给定一组考试成绩,如果未出现则加入树,如果已经出现则数量加一。
所以要修改Node对象,添加记录成绩出现次数加一,代码如下:
function Node(data,left,right){
this.data=data;
this.left=left;
this.right=right;
...
分类:
编程语言 时间:
2015-05-19 10:47:18
阅读次数:
140
树是一种非线性的数据结构,以分层的方式存储数据。树被用来存储具有层级关系的数据,比如文件系统中的文件;树还被用来存储有序列表。这里将研究一种特殊的树:二叉树。选择树而不是那些基本的数据结构,是因为在二叉树上进行查找非常快(而在链表上查找则不是这样),为二叉树添加或删除元素也非常快(而对数组执行添加或删除操作则不是这样)。
树是n个结点的有限集。最上面的为根,下面为根的子树。树的节点包含一个数据元...
分类:
编程语言 时间:
2015-05-18 09:14:54
阅读次数:
132
现在谈谈在二叉树中进行查找。对二叉查找树来说,一般有以下三类查找:最大值,最小值和给定值。
查找最小值就是遍历左子树,直到找到最后一个结点,这是因为在二叉查找树中较小的值总是在左子节点上的。
代码如下:
function getMin(){//查找最小值
var current=this.root;//指向根节点
while(current.left!...
分类:
编程语言 时间:
2015-05-18 09:14:04
阅读次数:
122
从二叉查找树上删除节点的操作复杂程度取决于删除哪个节点。如果删除没有子节点的节点就非常简单,如果节点只有一个子节点,不管是左子节点还是右子节点,就变得稍微有点复杂,如果节点包含两个子节点就最复杂。
如果待删除节点是叶子节点,那么只需要将从父节点指向它的链接指向null。
如果待删除节点只包含一个子节点,那么原本指向它的节点就得使其指向它的子节点。
...
分类:
编程语言 时间:
2015-05-18 09:13:39
阅读次数:
127
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?
样例
给出n = 3,有5种不同形态的二叉查找树:
1 3 3 2 1
\ / / / \ 3 2 1 1 3 2
/ / \ ...
分类:
其他好文 时间:
2015-05-17 20:20:21
阅读次数:
344
二叉排序树(二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。)或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根...
分类:
其他好文 时间:
2015-05-17 16:32:27
阅读次数:
130