logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

数据结构——四十二、二叉排序树(王道408)

本文介绍了二叉排序树(BST)的定义、查找、插入、构造和删除操作。二叉排序树是一种左子树结点值小于根结点值,右子树结点值大于根结点值的特殊二叉树,其中序遍历可得到递增序列。查找操作通过比较关键字值在左右子树中递归搜索。插入操作根据关键字大小决定插入位置。构造BST即不断插入新结点的过程。删除操作需分三种情况处理:删除叶子结点、仅有一棵子树的结点或两棵子树的结点。对于同时有左右子树的结点,可采用直接

文章图片
#数据结构#算法#程序人生 +1
数据结构——二十九、图的广度优先遍历(BFS)(王道408)

本文探讨了图的广度优先遍历(BFS)算法。首先通过与树的广度优先遍历对比,指出两者在横向搜索节点方面的相似性,以及图遍历中可能遇到的环路问题。接着详细介绍了BFS的实现思路:使用访问标记数组、辅助队列和两个基本操作(FirstNeighbor和NextNeighbor)来获取相邻节点。代码实现部分展示了从初始顶点出发,依次访问并标记相邻顶点并入队的过程。通过示例图解说明了算法执行时队列和访问标记的

文章图片
#数据结构#宽度优先#数据库 +4
数据结构——七、特殊矩阵的压缩存储(王道408)

摘要: 本文介绍了数组的存储结构与特殊矩阵的压缩存储方法。对于一维数组,元素连续存储且支持随机存取;二维数组可采用行优先或列优先存储策略。特殊矩阵包括对称矩阵、三角矩阵和三对角矩阵,通过压缩存储可节省空间。对称矩阵仅存储主对角线和一侧三角区,利用对称性访问另一侧;三角矩阵额外存储一个常量;三对角矩阵按行优先存储带状区域。每种矩阵都给出了下标映射公式,实现矩阵元素到一维数组的高效定位。

文章图片
#矩阵#考研#数据结构 +3
数据结构——二十一、哈夫曼树(王道408)

文章摘要 本文系统介绍了哈夫曼树及其应用。首先定义了带权路径长度(WPL)的计算方法,通过实例比较不同二叉树的WPL值。重点阐述哈夫曼树的构造算法:每次合并权值最小的两棵树,最终生成WPL最小的最优二叉树,其具有结点总数2n-1、无度为1结点等特点。经典应用为哈夫曼编码,通过将高频字符分配短编码实现数据压缩,相比固定长度编码可显著减少传输位数。文中还通过字母频率统计案例,展示了哈夫曼编码实现59.

文章图片
#数据结构#学习#算法 +1
数据结构——三十三、Dijkstra算法(王道408)

本文介绍了Dijkstra最短路径算法及其应用。首先指出BFS算法在求单源最短路径时的局限性,仅适用于无权图或权值相同的图。然后详细阐述了Dijkstra算法的实现思路:通过维护三个数组(标记已找到最短路径、最短路径长度、前驱顶点),逐步确定各顶点的最短路径。算法步骤包括初始化数组、选择当前最短路径顶点、更新相邻顶点信息等。最后通过具体案例演示了算法执行过程,展示了如何通过迭代更新找到从起点到各顶

文章图片
#数据结构#算法#图论 +2
数据结构——十七、线索二叉树找前驱与后继(王道408)

摘要:本文详细介绍了中序和先序线索二叉树中查找指定节点的前驱和后继的方法。对于中序线索二叉树,当rtag=1时后继为右孩子,rtag=0时需找到右子树最左下节点;前驱同理通过ltag判断。先序线索二叉树中,后继根据左右孩子存在情况决定,前驱则需通过三叉链表或逆向遍历实现。文章提供了各场景下的算法思路和完整代码实现,包括非递归的中序/先序遍历方法。

文章图片
#数据结构#学习#算法 +2
数据结构——三十一、最小生成树(王道408)

本文介绍了最小生成树(MST)的概念及其求解方法。生成树是包含图中所有顶点的极小连通子图,边数为顶点数减1。最小生成树是权值之和最小的生成树,可能不唯一但总权值唯一。文章重点讲解了Prim算法的实现步骤:从初始顶点出发,逐步选择权值最小的边将新顶点纳入生成树,直到所有顶点都被包含。算法通过维护lowCost数组记录各顶点到生成树的最小代价,并不断更新该数组来实现最小生成树的构建。适用于带权连通无向

文章图片
#数据结构#算法#程序人生 +2
数据结构——三十二、最短路径问题——BFS算法(王道408)

本文介绍了求解无权图单源最短路径的BFS算法。首先对最短路径问题进行了分类,分为单源最短路径和每对顶点间最短路径,分别对应BFS/Dijkstra和Floyd算法。重点讲解了BFS算法的实现过程:通过队列逐层遍历,记录各顶点到源点的距离和路径前驱,最终得到最短路径。相比普通BFS,增加了距离数组d和前驱数组path的记录。文章还指出广度优先生成树的层数反映了顶点到源点的最短距离。最后附上了代码实现

文章图片
#算法#数据结构#宽度优先 +2
一、数据结构专栏导航页(王道408)

这篇文章是一位考研学生分享的数据结构学习笔记合集。作者提供了详细的数据结构学习资料,包括代码示例、图表解释和习题解答,全部免费开放。目前专栏主要包含数据结构内容,每隔一天更新两章,后续会逐步添加其他考研科目笔记。文章末尾附有已完成的10个数据结构章节链接,包括线性表、栈、队列、树等主题,并承诺持续更新。作者以轻松的笔调分享学习资源,同时也表达了对考研学子的祝福和共勉之意。

文章图片
#数据结构#考研#学习 +1
数据结构——六十、快速排序(王道408)

快速排序是一种基于交换的排序算法,通过分治策略将待排序序列划分为两部分。算法首先选取基准元素(通常为首元素),使用双指针low和high从序列两端向中间扫描,确保low指针左侧元素均小于基准,high指针右侧元素均大于等于基准。通过不断交换元素位置,最终将基准元素放置到正确位置,完成一次划分。然后递归地对左右子序列重复上述过程,直至所有元素有序。示例中展示了以49为基准的一次完整划分过程,通过双指

文章图片
#数据结构#算法#排序算法 +2
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择