- 博客(7)
- 收藏
- 关注
原创 解决最短路径问题多种方法合集(迪杰斯特拉算法、弗洛伊德算法、Dijkstra算法)
通过本实验,我学习了迪杰斯特拉算法的基本思想和步骤,掌握了用C语言实现该算法的方法。我了解了邻接矩阵和邻接表两种图的存储方式,以及如何用结构体定义图中顶点和边的属性。我还复习了广度遍历和深度遍历两种图的遍历方法,以及如何用递归输出最短路径。迪杰斯特拉算法是一种典型的最短路径算法,它利用贪心策略,从源点开始,每次选择距离源点最近且未加入结果集合的顶点,并更新其他顶点到源点的距离。该算法适用于没有负权边的赋权图。
2023-12-29 14:46:51 1224 1
原创 十字链表实现稀疏矩阵的加法和乘法
本次实验的目的是用十字链表和一般方法分别实现稀疏矩阵的加法和乘法,并比较两种方法的优缺点。稀疏矩阵是指矩阵中大部分元素为零,只有少数元素非零的矩阵。稀疏矩阵在科学计算、图像处理、数据挖掘等领域有广泛的应用。为了节省存储空间和提高运算效率,稀疏矩阵通常采用特殊的存储结构来表示,其中一种常用的结构是三元组表,即用一个一维数组存储非零元素的行号、列号和值,以及矩阵的行数、列数和非零元个数。
2023-12-26 15:12:39 1452 1
原创 哈夫曼编、译码系统
通过哈夫曼编、译码算法的实现,巩固二叉树及哈夫曼树相关知识的理解掌握,训练运用所学知识,解决实际问题的能力。学习使用C语言编写哈夫曼编、译码系统,并掌握其基本原理和步骤。了解哈夫曼编码在数据压缩和通信中的应用和优势。
2023-12-24 00:28:41 1047 1
原创 软件开发基础能力训练
Thread.yield()暂停正要执行的程序,把执行机会让给优先级不比它小的 :Threadx.getPriority() >=this.getPriority。简单来说:Scanner可以根据数据的类型来获取数据,而其他几种输入只能获取字符或字节,但是Scanner不能。补充:getName() 方法可以得到线程的名称,setName(parameter) 方法设定。trim的作用是去除两边的空格,保证得到数据的类型的简洁性、正确性。通过join()方法来阻断当前执行的进程,引进调用该方法的进程。
2023-12-17 21:18:52 54
原创 一招教你用Dijkstra算法解决最短路径问题
本实验的目的是通过编写和运行一个用C语言编写的程序,来理解和掌握Dijkstra算法的原理和步骤。Dijkstra算法是一种求解有向图中单源最短路径问题的算法,它可以有效地找出从一个节点到其他所有节点的最短路径长度。假设:如果给定一个有向图的邻接矩阵,那么可以用Dijkstra算法计算出从源节点到其他所有节点的最短路径长度。我们假设给定的有向图是连通的,即任意两个节点之间都存在一条路径。根据结果和讨论,接受假设,并给出理由。
2023-12-11 17:22:02 382 2
原创 升序数组的实现
比较a链表中节点的值与b链表中节点的值,依次将b链表中的节点插入a链表中合适的位置,最终实现两个有序数组的合并。本次实验的目的为合并两个有序数组 ,旨在实现合并两个升序数组为一个升序数组的功能,实现方法是利用链表结构,通过比较两个数组的值,依次将两个数组中的元素合并到第一个链表中,最终输出合并后的链表。这道题目的思路是,将两个有序数组合并成一个有序数组,我们需要开辟两个链表来存储这两个数组,然后再通过比较函数依次将两个链表的元素合并到第一个链表中。此函数用于比较两个链表中的元素大小,并将其合并成一个链表。
2023-11-22 09:31:10 95
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人