堆树介绍: 之前在二叉树的时候说到过一种特殊的二叉树---完全二叉树(除了最后一层,其他层的每个结点都是满的,且最后一层结点全部靠左排列,这样就可以很方便的用数组来表示,下标从0开始如果父结点索引是i那么它两个子结点的索引就是2i+1和2i+2,具体的图解见二叉树)。而堆树又是一种特殊 ...
README 本文部分内容转自 数据结构与算法分析,旨在理解高级数据结构实现 自顶向下伸展树的基础知识 源代码部分思想借鉴了数据结构与算法分析,有一点干货原创代码,for original source code, please visithttps: github.com pacosonTang dataStructure algorithmAnalysis tree master chapt ...
2016-01-29 22:34 0 1925 推荐指数:
堆树介绍: 之前在二叉树的时候说到过一种特殊的二叉树---完全二叉树(除了最后一层,其他层的每个结点都是满的,且最后一层结点全部靠左排列,这样就可以很方便的用数组来表示,下标从0开始如果父结点索引是i那么它两个子结点的索引就是2i+1和2i+2,具体的图解见二叉树)。而堆树又是一种特殊 ...
二叉树查找树: 二叉查找树也叫二叉搜索树,二叉排序树。它也是一种特殊的二叉树, 它具有以下特点 1.如果它的左子树不为空,则左子树上结点的值都小于根结点。 2.如果它的右子树不为空,则右子树上结点的值都大于根结点。 3.子树的子树同样也要遵循以上两点 为什么又叫做二叉排序树 ...
前面我们说到的二叉查找树,可以看到根结点是初始化之后就是固定了的,后续插入的数如果都比它大,或者都比它小,那么这个时候它就退化成了链表了,查询的时间复杂度就变成了O(n),而不是理想中O(logn),就像这个样子 如果我们有一个平衡机制,让这棵树可以动起来,比如将4变成根结 ...
数据结构清单 Binomial Heap Leftist Tree:左倾堆 重型网络教程 1.纸上谈兵:算法与数据结构 2.CS 598 JGE:Advanced Data Structures(Fall 2015) 3.COP 5536 Advanced Data ...
我们经常会用到文件压缩,压缩之后文件会变小,便于传输,使用的时候又将其解压出来。为什么压缩之后会变小,而且压缩和解压也不会出错。赫夫曼编码和赫夫曼树了解一下。 赫夫曼树: 它是一种的叶子结点带有权重的特殊二叉树,也叫最优二叉树。既然出现最优两个字肯定就不是随便一个叶子结点带有权重的二叉树都叫做 ...
前言 splay学了已经很久了,只不过一直没有总结,鸽了好久来写一篇总结。 先介绍 splay:亦称伸展树,为二叉搜索树的一种,部分操作能在 \(O( \log n)\) 内完成,如插入、查找、删除、查询序列第 \(k\) 大、查询前缀(比查询的数小的数中最大的数)、查询后缀(比查询的数大的数 ...
递归应该是初学者最难啃的一块骨头,很多人也是半懂不懂,结果学到很深的境地也会因为自己基础不好,导致发展太慢。 因此我希望初学者还是深刻理解递归及深搜,这样以后再继续向前学。 递归,我们把这个字分为两个部分: 递: 所谓递即向下传递,换一种理解方式就是间接或直接地调用自己本身,且递归通常 ...
在Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了之中,认识了python基本的数据类型和数据结构,现在认识一个高级的:Collections 这个模块对上面的数据结构做了封装,增加了一些很酷的数据结构,比如: a)Counter: 计数器,用于统计元素的数量 b ...