IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:二叉树

共 4 篇相关文章

IT 累计浏览 4,437

研发面试最常用的10大算法

算法题是研发面试中躲不过的一道坎。这篇没有泛泛而谈,作者直接从实际面试需求出发,为你梳理了程序员在代码面试中最常遇到的10大算法类型。 文章重点以 **String/Array/Matrix**(字符串/数组/矩阵)这一类为例,点明了面试的“陷阱”——题目表面看很简单,但解决往往需要动态规划、递归等高级算法思维。文中还贴心地附上了Java中操作字符串和数组的常用方法代码片段,非常实用。 除了数组字符串,文章还涵盖了如排序、二叉树、图、动态规划等核心题型,并列举了大量经典例题,例如“Two Sum”、“单词分割”、“最长回文子串”等。对于每个类别,它都点出了核心考察点和需要深入理解的原理。 这更像一份高效的面试算法备战地图,帮你厘清重点,把有限的精力投入到真正需要花功夫去理解的算法原理上,而不是盲目刷题。

IT 累计浏览 3,318

树与存储

这篇讲的是数据结构中最基础也最重要的“二叉树”概念。作者开篇就抓住了核心:二叉树的精髓在于“二分”,即每个节点最多拥有两个子节点的规则,由此衍生出满二叉树、完全二叉树等多种形态,是理解更复杂树结构的基础。 文章接着深入到计算机如何实际存储这棵树。关键对比在于两种经典方案:顺序存储和链式存储。顺序存储利用数组,逻辑上相邻的节点在物理内存中也连续,通过特定索引关系(如左孩子为2i+1,右孩子为2i+2)快速定位,适合完全二叉树这类结构紧凑的场景。而链式存储则更灵活,通过指针将分散在内存中的节点连接起来,能高效处理非完全二叉树或动态变化的树结构,是实际编程中最常用的方式。 这种存储方式的选择直接决定了后续遍历、查找等操作的效率和实现复杂度。文章通过对两种方式的剖析,清晰地揭示了抽象数据结构与具体计算机存储之间的映射关系,为读者后续学习二叉搜索树、堆等高级结构打下了扎实的基础。

IT 累计浏览 2,408

Huffman 编码压缩算法

这篇讲的是经典的数据压缩算法——Huffman编码。作者从探索数据压缩的动机出发,引出了由David Huffman提出的这一优雅算法。其核心思想是根据字符出现的频率,利用优先队列和带权重的二叉树(即Huffman树)来构建前缀编码,从而实现压缩。 文章特别指出,虽然Huffman算法本身并不新颖,但中文社区里能清晰讲透其构造过程,尤其是如何一步步构建Huffman树的资料并不多见。为此,作者分享并基于一篇优秀的英文教程进行了转述,其中用一个字符串为例,将构建编码树的步骤拆解得直观易懂,非常适合想要直观理解该算法细节的开发者。 Huffman编码的魅力在于它简单而高效地利用了信息熵的原理,是学习数据结构和算法思想的绝佳案例。

IT 累计浏览 5,497

红黑树学习笔记

这篇讲的是如何从零开始理解红黑树这个经典数据结构。作者没有直接抛出复杂定义,而是带着读者层层拆解:先厘清“二叉树”与“二叉搜索树”的基础特征,再切入红黑树的核心命题——如何通过额外的规则(如节点颜色约束)维持树的平衡性,从而保证搜索、插入和删除操作的稳定效率。 文章特别强调了“平衡”在动态数据结构中的实际意义,并对比了完全平衡与近似平衡的权衡思路。对于红黑树五大性质的推导过程,文中通过简化的示意图展示了旋转操作如何局部调整树形而不破坏全局秩序,这种直观的呈现对理解其巧妙设计很有帮助。 如果你正在学习高级数据结构,或是对平衡树的工程实现感兴趣,这篇笔记提供了一个从概念到直观的平滑入口,有助于建立对红黑树更扎实的直觉认知。