数据结构
跟随博主在本科阶段对数据结构的学习进度,系统地学习数据结构。
Saber Young
这个作者很懒,什么都没留下…
展开
-
数据结构之图的遍历
图的遍历是对一张图中所有节点进行访问的过程。在图遍历中,我们从图中的某个节点开始,沿着边一直访问其他节点,直到访问完所有与该节点有连通关系的节点。遍历过程中需要遵循一定的遍历规则,常见的有深度优先遍历和广度优先遍历。深度优先遍历是从某个节点开始,尽可能深地访问其他节点,直到到达图的最底层,然后再回溯到上一级节点继续遍历。广度优先遍历则是逐层访问节点,先访问与当前节点相邻的所有节点,然后再访问与这些节点相邻的节点,以此类推,直到访问完所有节点为止。原创 2023-06-12 18:57:55 · 274 阅读 · 1 评论 -
数据结构之最短路径算法
Prim算法和Dijkstra算法都是解决图中最短路径问题的算法,但是它们的约束条件不同。Prim算法是一种用于寻找加权无向连通图中的最小生成树的贪心算法。它从任意一个节点出发,然后每次选取一条边,将其加入到当前生成树的集合中,并确保加入后生成的树仍然是一个连通图,直到包含所有节点为止。Dijkstra算法是一种单源最短路径算法。原创 2023-06-12 18:53:25 · 249 阅读 · 0 评论 -
数据结构之哈夫曼树
哈夫曼树是一种经典的数据结构,也称为最优二叉树。它被用来压缩数据,尤其是文本文件,因为文本文件有很多重复的部分。哈夫曼树是由一组权值给定的叶子节点构建而成的,其中每个叶子节点代表一个具有权值的字符。哈夫曼树的构建过程是基于贪心策略的,它将频率高的字符对应的叶子节点放在较浅的层次上,频率低的字符对应的叶子节点放在较深的层次上,从而使整个树的深度最小。哈夫曼树的构建过程需要通过反复合并两个权值最小的节点来实现,直到树中只剩下一个根节点。原创 2023-06-12 18:04:13 · 464 阅读 · 0 评论 -
数据结构之二叉树的构建与遍历
什么是二叉树二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。由二叉树定义得出二叉树有以下特点:每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。左子树和右子树是有顺序的,次序不能任意颠倒。即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。下面是构建和遍历二叉树的代码#include <stdio.h>#include <malloc.h>#de原创 2023-05-09 10:50:19 · 89 阅读 · 0 评论 -
数据结构之链队列
【代码】数据结构之链队列。原创 2023-04-24 15:28:30 · 37 阅读 · 0 评论 -
数据结构之栈的应用——括号匹配
通过判断栈中是否还剩下有括号就可以很容易经过一遍遍历就解决问题。原创 2023-04-24 15:21:30 · 32 阅读 · 0 评论 -
数据结构之汉诺塔问题深入分析
上次我们学习了汉诺塔问题的代码,但是递归问题理解较难,所以这篇文章来进一步分析汉诺塔问题的代码。原创 2023-04-24 14:38:38 · 165 阅读 · 0 评论 -
数据结构之线性表的总结
顺序结构的特点:可以通过索引直接查找某个位置的元素,且时间复杂度为O(1),但由于数组在一开始会设定大小,因此顺序表的存储是有限且有唯一上限的。并且因为顺序表是用数组实现的,所以在进行插入和删除操作时需要移动大量元素,效率较低。链式结构的特点:只要系统的存储空间足够,就能够一直存储,理论上是无限的,但由于链表的结构体中只记录下个节点的指针,所以在查找时只能进行遍历查找,时间复杂度为O(n),查找的效率远远低于顺序表。原创 2023-04-24 09:30:12 · 46 阅读 · 0 评论 -
数据结构之汉诺塔问题
汉诺塔问题是一道经典的递归问题,通过研究汉诺塔问题,能够对递归有一个更深刻的理解。原创 2023-04-19 22:00:24 · 115 阅读 · 0 评论 -
数据结构之静态链表
不过通过对静态链表的学习,只要将其掌握,那么对于计算机更加底层的东西将会有更深刻的理解。静态链表其实就是自己管理的动态链表,需要自己分配空间,更考验对计算机内存的理解。原创 2023-04-05 17:21:23 · 51 阅读 · 1 评论 -
数据结构之单链表
我们可以发现 指向一个节点的指针实际上是指向这个链表中的第一个元素,这一点和数组很相似,因为一个指向数组的指针实际上同样指向的是这个数组的第一个元素。因此 结构体的大小都是结构体中最大基本数据类型所占字节数的整数倍,多开辟出来的空间则置空。而且还要注意的一点是,这些多出来的空间也可以存储元素。同时,出现了另一个问题:对一个数组,存储的元素类型一致,因此整个数组的大小很容易就能计算出来;因此,一个结构体也可以看成是其中存储不同类型元素的特殊的数组,因为在结构体的内部,元素之间的地址也是连续的。原创 2023-03-29 22:18:09 · 47 阅读 · 0 评论 -
数据结构之线性表
这节课上主要进行了线性表的学习,下面是线性表的有关操作代码和运行结果。原创 2023-03-26 11:54:09 · 39 阅读 · 0 评论