数据结构
Neuzly
这个作者很懒,什么都没留下…
展开
-
数据结构------平衡二叉树
什么是 BalancedBinary Tree定义:又称AVL树;空树或左右子树高度绝对值差不超过1.平衡因子:BF(T)= hL - hR平衡二叉树的高度:log2(n)平衡二叉树的调整RR旋转(右单旋):“麻烦节点”在“发现者”右子树的右子树上LL旋转(左单旋):“麻烦节点”在“发现者”左子树的左子树上LR旋转:“麻烦节点”在“发现者”左子树的右子树上LR旋转:“麻烦节点...原创 2019-08-23 16:20:57 · 90 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码
哈夫曼树:解决的问题:如果根据节点的不同查找频率构造更有效的搜索树?带权路径长度(WPL):设二叉树有n个子节点,每个叶子结点带有权值Wk,从根节点到每个叶子结点的长度为Ik,则每个叶子结点的带权路径长度之和就是WPL。哈夫曼树(最优二叉树):WPL最小的二叉树。特点:没有度为1的节点。n个叶子结点的Huffman树共有2n-1个结点。Huffman的任意非叶结点的左右子树交换后仍...原创 2019-08-23 16:15:05 · 169 阅读 · 0 评论 -
数据结构----图
构成元素:表示“多对多”的关系包含:一组顶点:通常用V(Vertex)表示定点的集合一组边:通常用E(Edge)表示边的集合无向边:用(v,w)表示,属于E,其中v,w属于V有向边:用<v,w>表示,属于E,其中v,w属于V图的抽象数据类型定义:类型名称:图(Graph)数据对象集:G(V,E)由一个非空的有限定点集合V和一个有限边集合E组成...原创 2019-08-25 14:53:24 · 103 阅读 · 0 评论 -
数据结构---集合的表示
集合的表示及查找集合运算:交、并、补、差,判定一个元素是否属于某一集合。并差集:集合并、差某元素属于什么集合并查集中集合存储如何实现:(1)用树结构表示集合,树的每个节点代表一个集合元素。(2)采用数组存储形式:集合的查找:typedef struct TreeNode* HuffmanTree;struct TreeNode{ int weight; Huf...原创 2019-08-25 14:55:48 · 1054 阅读 · 0 评论 -
数据结构------图的表示法
图的邻接矩阵表示法:邻接矩阵:可以用来存储无向图,以0、1表示是否连通,且采用一维数组进行存储可以节省内存空间;对于有向图来说,把G[i][j]的值定义为边的权重值即可。优点:直观、简单、好理解方便检查任意一对定点间是否存在边方便找任以顶点的的所有“邻接点”方便计算任一顶点的“度”(入度、出度)缺点:存放稀疏图的时候浪费空间,但存放完全图还算是很合算的。邻接表...原创 2019-08-25 16:09:34 · 722 阅读 · 0 评论 -
数据结构---堆(heap)
基础概念优先队列:根据元素的优先权,取出元素。那么我们,采用什么数据结构去描述优先队列,并且减小时间复杂度呢:引入“堆”这个数据结构堆(heap)结构性:用数据表示的完全二叉树有序性:任意节点的传健字是其子树所有节点的最大值。(最大堆及最小堆)...原创 2019-08-22 16:09:30 · 86 阅读 · 0 评论