本学习笔记部分内容来自网易云课堂浙江大学数据结构课程,谢谢!
1、散列表(哈希表)
已知的几种查找方法:
顺序查找 O(N)
二分查找(静态查找) O(logN)
二叉搜索树 O(h) h为二叉树高度 (动态查找:有插入有删除有查找)
平衡二叉树 O(logN)
查找的本质:已知对象找位置
1、有序安排对象:全序或半序;
2、直接算出对象位置...
分类:
其他好文 时间:
2015-07-11 18:40:07
阅读次数:
253
set/multiset的简介
set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。
set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。
set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。
multiset与set的区别:set支持唯一键值,每个...
分类:
其他好文 时间:
2015-07-08 22:43:41
阅读次数:
171
map/multimap的简介
map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。
map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。
map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。
map可以直接存取key所对应的val...
分类:
其他好文 时间:
2015-07-08 22:43:06
阅读次数:
184
红 - 黑树是一种平衡二叉树被广泛用于,但对于很多人谁是新算法,红黑树实在是太复杂,看之前July博文,觉得自己的写作非常具体的。不过还是有点乱。不能急。要每天看一点点,所以我把插入和删除分开来写,仅仅要看懂并记住插入后是如何操作的,那么删除也就easy了。红黑树的规则:性质1. 节点是红色或黑色。...
分类:
其他好文 时间:
2015-07-08 12:33:34
阅读次数:
225
平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列...
分类:
其他好文 时间:
2015-07-02 22:48:29
阅读次数:
487
二叉树特殊的二叉树:二叉查找树:对任意节点,左子节点小于或等于当前节点,右子节点大于或等于当前节点平衡二叉树:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数...
分类:
其他好文 时间:
2015-06-30 23:29:32
阅读次数:
117
建立一个二叉树,求其高度,首先前、中、后序遍历,求叶子数,求树深度并且判断是否为平衡二叉树。二叉树是一个典型的数据结构,华为往年的试题中也有考到这个知识点的。下面介绍几个树的重要性质:
性质1 二叉树第i层上的结点数目最多为2^(i-1)(i≥1)。
性质2 深度为k的二叉树至多有2^k-1个结点(k≥1)。
性质3 在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n...
分类:
其他好文 时间:
2015-06-28 18:55:17
阅读次数:
168
//二叉树学习过程中的问题和代码集合//按先序序列创建二叉树//树的高度//求树的结点数//求二叉树第K层的节点个数//求二叉树中叶子节点的个数//求二叉树中节点的最大距离//两结点最低公共祖先//判断二叉树是不是平衡二叉树//释放树空间//感谢:http://blog.csdn.net/lucky...
分类:
其他好文 时间:
2015-06-28 14:09:11
阅读次数:
183
作为一种数据结构,红黑树可谓不算朴素,因为各种宣传让它过于神秘,网上搜罗了一大堆的关于红黑树的文章,不外乎千篇一律,介绍概念,分析性能,贴上代码,然后给上罪恶的一句话,它最坏情况怎么怎么地... 我们想,一棵二叉树怎么就是最坏情况,那就是它退化为一个链表,这样查找就成了遍历。问题是,平衡二叉树怎么会退回链表!它是怎么保持平衡的?能不能简单地阐述?当然可以!一般的讲述红黑树...
分类:
系统相关 时间:
2015-06-28 01:19:29
阅读次数:
201