关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式。 二叉树又有几种特殊的形式:二叉排序树(二叉查找树)、最优二叉树(哈弗曼树)、二叉堆(大顶堆,小顶堆)等。斜线是数据结构 二叉排序树(二叉查找树)(BST)它或者是一棵空树;或者是具有下列性质的二叉树:(常用二分查找) 1,若左子树不空,则左子 ...
分类:
其他好文 时间:
2017-07-01 23:22:32
阅读次数:
448
二叉树:二叉树是每个节点最多有两个子树的树结构。 满二叉树:一棵深度为K且有2^k-1个结点的二叉树称为满二叉树。 完全二叉树:每个结点与其对应深度的满二叉树一一对应。 二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树: A. 左子树若不为空,则左子树上所有节点的值均小于它的根结点值; B. ...
分类:
其他好文 时间:
2017-06-30 01:11:09
阅读次数:
259
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; typedef struct Bitnode { int data; struct Bitnode *lchild ...
分类:
编程语言 时间:
2017-06-27 18:42:33
阅读次数:
146
一、 选择排序的思想 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。 简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换; ...
分类:
编程语言 时间:
2017-06-25 14:18:29
阅读次数:
197
1.平衡树是一棵二叉查找树。 二叉排序树是一棵空树,或是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 2.平衡二叉树(Balanced Bi ...
分类:
其他好文 时间:
2017-06-22 12:09:24
阅读次数:
160
二叉排序树的插入与删除可能会破坏二叉排序树的性质,如今要求插入和删除操作保持其性质 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上全部结点的值均小于它的根结点的值; (2)若右子树不空。则右子树上全部结点的值均大于或等于它的根结点的值; (3)左、右子树也分别 ...
分类:
编程语言 时间:
2017-06-20 14:52:48
阅读次数:
173
【简介】 树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存 ...
分类:
其他好文 时间:
2017-06-13 17:12:37
阅读次数:
270
一、定义与性质 定义 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉排序树或者是空树. 性质 (1) 二叉排序树中任一结点x,其左(右)子树中任一结点y(若存在)的关键字必小(大)于x的关键字。 (2) 二叉排序树中,各结 ...
分类:
编程语言 时间:
2017-06-13 16:54:41
阅读次数:
256
1、 概述 二叉查找树(Binary Search Tree,也叫二叉排序树,即Binary Sort Tree)能够支持多种动态集合操作,它可以用来表示有序集合、建立索引等,因而在实际应用中,二叉排序树是一种非常重要的数据结构。 从算法复杂度角度考虑,我们知道,作用于二叉查找树上的基本操作(如查找 ...
分类:
其他好文 时间:
2017-06-13 16:52:04
阅读次数:
239
我们知道,求逆序对最典型的方法就是树状数组,可是另一种方法就是Merge_sort(),即归并排序。 实际上归并排序的交换次数就是这个数组的逆序对个数,为什么呢? 我们能够这样考虑: 归并排序是将数列a[l,h]分成两半a[l,mid]和a[mid+1,h]分别进行归并排序,然后再将这两半合并起来。 ...
分类:
编程语言 时间:
2017-06-02 22:04:14
阅读次数:
179