![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
昏昏的小猪仔
一个热爱生命,热爱生活的编程瓜娃子
展开
-
数据结构--图
图(Graph)是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为G(V,E),其中G表示一个图,V是图G顶点的集合,E是图G中边的集合. 图定义的明确: * 线性表中的数据元素叫做元素,树中叫节点,在图中数据元素我们称之为顶点(Vertex) * 线性表可以没有数据元素,称为空表,树中可以没有节点,叫做空树,而图强调顶点时有穷非空集合. * 线性表中相邻的数据元素之间具有线性关系,树结构中,相邻两层的节点具有层次关系,而图结构中,任意两个节点都可能有关系,顶点之间的逻辑关系用边来表示,边集..原创 2021-07-06 08:17:10 · 129 阅读 · 0 评论 -
赫夫曼树的定义
赫夫曼编码是首个实用压缩编码方案.根据字符出现的频率利用赫夫曼编码可以构造出一个不等长的二进制,使用编码后电文长度最短,且保证不产生二义性. 赫夫曼树 先把两颗二叉树简化成叶子节点带权的二叉树.(树节点之间的连线相关的数叫做权,weight). 节点的路径长度: 从根节点到该节点的路径连接数. 树的路径长度: 树中每个叶子节点的路径长度之和. 节点带权路径长度: 节点路径长度和节点的权值的乘积 树的带权路径长度:(WPL) 是树中所有叶子节点的带权路径长度之和. WPL的值越小,说明构造出的二叉树的性能.原创 2021-07-05 15:02:57 · 142 阅读 · 0 评论 -
树、森林和二叉树的相互转换
1.树到二叉树的转换 a. 在树中所有兄弟节点之间加一连线. b. 对每个节点保留与其长子的连线外,去掉该节点与其他孩子的连线. 树的遍历顺序是先左后右的. 2.森林到二叉树的转换. a. 先将森林中的每棵树变成二叉树. b. 再将各二叉树的根节点视为兄弟,从左到右连在一起.就形成了一个二叉树. 二叉树到树和森林的转换 a. 若节点x是其双亲y的左孩子,则把节点x的右孩子,右孩子的右孩子,…,都与y用连线连起来. b. 去掉双亲到右孩子之间的连线. 树的遍历 先根遍历和后根遍历 先根遍历: 先访问树原创 2021-07-05 07:43:57 · 63 阅读 · 0 评论 -
算法的复杂度
什么是算法? 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 算法具有:输入、输出、有穷性、确定性、可行性。 输入表示一个算法要有0个或多个输入。 至少有一个或多个输出。 有穷性 算法设计的要求: 正确性 算法的设计没有语法错误 算法对合法的输入能输出能够满足要求的输出 算法对非法输入能够产生满足规格的说明 算法对故意刁难的测试输入都有满足要求的输出结果。 可读性 算法的设计另一目的就是便于阅读、理解和交流。 健壮性 ..原创 2021-06-28 14:58:48 · 56 阅读 · 0 评论