使用set或multiset之前,必须加入头文件
Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。
sets和multiset内部以平衡二叉树实现
1. 常用函数
1) 构造函数和析构函数
set c:创建空集合,不包含任何元素
set c(op):...
分类:
其他好文 时间:
2014-08-07 18:59:30
阅读次数:
331
最近在项目中用到了,特地搬运过来。Kd-树 其实是K-dimension tree的缩写,是对数据点在k维空间中划分的一种数据结构。其实,Kd-树是一种平衡二叉树。举一示例:假设有六个二维数据点 = {(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)},数据点位于二维空间中。为...
分类:
其他好文 时间:
2014-08-05 09:30:38
阅读次数:
321
问题:判断二叉树是否为平衡二叉树分析:树上的任意结点的左右子树高度差不超过1,则为平衡二叉树。 搜索递归,记录i结点的左子树高度h1和右子树高度h2,则i结点的高度为max(h1,h2)=1,|h1-h2|>1则不平衡/** * Definition for binary tree * str...
分类:
其他好文 时间:
2014-08-04 13:39:57
阅读次数:
183
平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O(log n)
AVL树的旋转一共有四种情形,注意所有旋转情况都是围绕着使得二叉树不平衡的第一个节点展开的。
1. LL型
平衡二叉树某一节点的左孩子的左...
分类:
其他好文 时间:
2014-08-01 19:50:02
阅读次数:
226
平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。
平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1
很显然,平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降,那么AVL就保持住了(BST)的最好时间复杂度O(lo...
分类:
其他好文 时间:
2014-08-01 19:49:22
阅读次数:
296
介绍还有一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas和Robert Sedgewick改成一个比較摩登的名字:红黑...
分类:
其他好文 时间:
2014-07-23 15:16:46
阅读次数:
375
平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii
and Landis)于1962年首先提出的,所以又称为AVL树。
定义:平衡二叉树或为空树,或为如下性质的二叉排序树:
(1)左右子树深度之差的绝对值不超过1;
(2)左右子树仍然为平衡二叉树.
平衡因子BF=左子树深度-右子树深度....
分类:
其他好文 时间:
2014-07-22 00:08:33
阅读次数:
257
题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
注:这里不考虑该二叉树是否是二叉排序树
解决要点:
1.后序遍历二叉树;
2.递归。
核心算法:
bool isBalanced(pTree pT,int *depth)
{
if(!pT)//参数判断
{
*d...
分类:
其他好文 时间:
2014-07-13 18:58:22
阅读次数:
239
二叉排序树的创建、查询、插入与删除
一、简述二叉排序树的思想:
动态查找表中主要有二叉树结构和树结构两种,而二叉树结构分为二叉排序树和平衡二叉树,树结构分为B-树和B+树等。
二叉排序树可以是一颗空树二叉排序树的性质:二叉排序树上的节点满足左子树
也就是说二叉排序树必须有顺序,且满足左子树
二、构建二叉排序树
创建二叉排序树通常...
分类:
其他好文 时间:
2014-07-10 22:57:28
阅读次数:
334
平衡二叉树:是一颗空树;或者具有以下性质的树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
平衡二叉树的关键在于插入结点时如何保持整棵树的平衡性。
下面是不平衡发生的四种情况:
(1)平衡二叉树某一节点的左孩子的左子树上插入一个新的节点,使得该节点不再平衡。
LL型(左孩子的左子树)
由于在A的左孩子B的左子树上插入结点F,使A的平衡因子由1增至...
分类:
其他好文 时间:
2014-07-10 22:49:30
阅读次数:
235