
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要:本文介绍了哈夫曼树和哈夫曼编码的核心概念。哈夫曼树通过每次合并两个最小权值节点来构造,确保带权路径长度最短。哈夫曼编码分为固定长度编码、可变长编码和前缀编码,其中前缀编码要求无编码是其他编码的前缀。哈夫曼树的WPL是唯一的。文章还简要提及并查集,用双亲表示法表示集合,但考察概率较低。

首先,虽然大家很爱用【int数组】,但是顺序表408要求就是写成【结构体】,然后在【结构体里面】设置一个【数组】,那没招了,背这个套路就完事了呗【定义一个结构体】【初始化值】一般情况我们更喜欢用typedef把麻烦的【struct 结构体类型名】换成简单的【结构体类型名】,那就如下:这样换完,我们以后初始化创建变量时也可以简写了小练一题。

本文系统梳理了二叉排序树(BST)和平衡二叉树的核心知识点。二叉排序树满足左<根<右的性质,中序遍历为升序,其查找效率与树高相关,最坏情况退化为链表(O(n))。BST的删除操作需分类处理叶子节点、单子树节点和双子树节点(需找前驱/后继替换)。平衡二叉树是BST的特殊形式,通过平衡因子(|高度差|≤1)保证效率,插入/删除时通过LL/RR/LR/RL四种旋转调整(单旋或双旋)。特别强调

红黑树是对平衡二叉树的优化,在保持查找效率的同时简化了插入和删除操作。红黑树通过五个核心规则(根叶黑、不红红、黑路同等)确保树结构相对平衡,其最长路径不超过最短路径的2倍。相比平衡二叉树,红黑树牺牲了严格的平衡性,换来了更高的插入和删除效率,而查找时间复杂度仍为O(log n)。红黑树的高度上限为2log₂(n+1),适用于频繁修改的场景,如Java的TreeMap实现。

本文系统梳理了数据结构中的查找算法,主要包括顺序查找、折半查找和分块查找三大类。顺序查找通过遍历实现,设置哨兵可优化性能;折半查找基于有序顺序表,利用二分法快速定位,其判定树具有平衡二叉树特性;分块查找结合顺序和索引结构,通过建立索引表提高效率。文章详细分析了各种算法的评估指标(ASL)、时间复杂度及适用场景,并给出数学证明和实例说明。重点比较了不同算法的优劣,指出折半查找时间复杂度为O(log₂

本文系统总结了图论中的三种重要应用问题:1. 最小生成树(Prim和Kruskal算法):关注整体权值最小,用于解决如铁路网建设等总成本最低问题。Prim算法通过逐步扩展点集实现,时间复杂度O(n²);Kruskal算法通过选边合并实现,时间复杂度O(e*log₂e)。两种算法结果可能不同,但都不允许形成环路。2. 最短路径问题:包含单源(Dijkstra算法)和多源(Floyd算法)最短路径。D

本文摘要(150字): 本文系统梳理了图的遍历与应用算法要点。图的遍历部分详解DFS(递归栈实现,时空复杂度随存储结构变化)和BFS(队列实现)的核心步骤与差异,强调访问标记与生成树概念。应用算法包括:1)最小生成树的Prim(贪心选点)和Kruskal(并查集合并边)算法;2)单源最短路径的BFS(无权图)和Dijkstra(带权图,需避免负权)算法;3)多源最短路径的Floyd算法。特别指出D

图的存储方式主要有邻接矩阵、邻接表、十字链表和邻接多重表四种。邻接矩阵适用于有向图和无向图,空间复杂度高(O(n²)),适合稠密图;邻接表同样适用于有向图和无向图,空间复杂度较低(无向图O(|V|+2|E|),有向图O(|V|+|E|)),适合稀疏图。十字链表仅适用于有向图,邻接多重表仅适用于无向图。邻接矩阵表示形式唯一,邻接表表示形式不唯一。查询顶点度时,邻接矩阵时间复杂度为O(n),邻接表出度

例题8:一定要做多几次!超级超级超级容易错!【前 j-1 列的总数】把等差数列求和:(j-1)(2n - j + 2) / 2。记得上面公式求得是【是数组里第几个元素空间】,如果【求下标】还得【-1】例题4:变条件换成【对称压缩矩阵】,存下三角(i >= j)【上三角按 “行” 优先】=【下三角按 “列” 优先】例题1:注意这个矩阵的下标也是从0开始的!【这列第 i 个元素】-【这列首元素】+【1

摘要:本文介绍了树的三种存储结构(双亲表示法、孩子表示法、孩子兄弟表示法)及其特点,重点分析了各种方法的查找效率。双亲表示法便于找父节点但找孩子需遍历;孩子表示法便于找孩子但找父节点需遍历;孩子兄弟表示法通过左孩子右兄弟的指针实现树到二叉树的转换。同时阐述了树、森林与二叉树的相互转换方法,以及树和森林的遍历方式(先根、后根、层次遍历等),指出这些遍历与二叉树遍历的对应关系。








