- 博客(12)
- 收藏
- 关注
原创 11.数据结构与算法之Prim算法与Dijkstra算法
算法执行过程中,每次从距离集合中选取当前距离最短的节点(标记为已确定最短路径),并更新与该节点相邻的未确定最短路径的节点的距离。具体实现时,可以使用一个优先队列作为距离集合,将每个节点的距离作为队列中的权重,然后每次从队列中取出距离最小的节点,将其标记为已确定最短路径,并更新与其相邻的未确定最短路径的节点的距离。Prim算法的基本思想是从一个起点开始,每次选取一个离当前生成树最近的未加入生成树的节点,将其加入生成树中,并更新与该节点相连的其他未加入节点的距离。这个过程持续进行,直到所有节点都被加入生成树。
2023-06-12 16:56:42 707
原创 10.数据结构与算法之图的遍历
图分为有向图和无向图,如果给图的每一边规定一个方向,那么得到的图称为有向图,其边称为有向边。图的遍历根据搜索方式的不同,分为广度优先搜索和深度优先搜索。深度优先搜索的主要思想是:首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未被访问过的顶点:当没有未被访问的顶点时,回到上一个顶点,继续试探访问其他顶点,,知道所有顶点都被访问过。广度优先搜索:首先以一个为被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,在访问它们的相邻的未被访问过的顶点,知道所有顶点都被访问过。
2023-06-12 16:47:55 99
原创 9.数据结构与算法之哈夫曼树
由于哈夫曼树的构建是从叶子结点开始,不断地构建新的父结点,直至树根,所以结点中应包含指向父结点的指针。当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,或者“哈夫曼树”。在构建哈夫曼树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树根越近。构建哈夫曼树时,需要每次根据各个结点的权重值,筛选出其中值最小的两个结点,然后构建二叉树。如果比两个结点中较小的那个还小,就保留这个结点,删除原来较大的结点;
2023-05-10 22:05:39 114
原创 3.数据结构与算法之静态链表
为了方便插入数据,通常会把数组建立的大一些,以便有空闲空间可以便于插入时不至于溢出。静态链表就是用数组来表示链表,用数组元素的下标来模拟链表的指针。由于是利用数组来定义的链表,属于静态储存分配,因而叫做静态链表。
2023-04-05 20:08:59 69
原创 2.数据结构与算法之单链表
2.缺点:进行尾部或者任意位置上插入或删除时时间复杂度和空间复杂度较大,每次都需要通过指针的移动找到所需要的位置,相对于顺序表查找而言效率较低。可以理解为:前一个元素有一个指针指向后一个元素的地址,然后两个元素之间依次链接,最后一个元素的指针则指向空。1.优点:可以按照实际所需创建结点增减链表的长度,更大程度地使用内存。,用一组地址任意的存储单元存放线性表中的。单链表的创建,添加,插入,删除。(指示后继元素存储位置),(数据元素的映象) +
2023-03-29 14:32:19 83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人