本次笔记内容:
小白-HP.1 题意理解
小白-HP.2 程序框架的搭建
小白-HP.3 模块的引用与裁剪
小白-HP.4 选择动物

文章目录

  • 题意理解
    • 引例
    • 输入输出样例
  • 程序框架
  • 模块的引用与裁剪
  • 实现函数

题意理解

引例

哈利波特可以将三种动物进行转换,念出相应咒语即可。如果他只能带一种动物去见老师,老师可能提出要任意一种动物。问:带哪种动物去,哈利念的咒语(字符)最少?即,到各个结点带权路径最短的结点是什么?

输入输出样例

如上图,输入样例为6个节点11条边。先使用Floyd算法先求个节点间最短路。

如果选节点1、2、3,则去5路程最长;如果选节点4、5、6,则去3路程最长。

而4去3路程路程相对最短为70,因此输出样例为4,70。

程序框架

int main()
{读入图;分析图;return 0;
}
int main()
{MGraph G = BuildGraph();FindAniaml(G);return 0;
}

因为是使用Floyd算法,所以用邻接矩阵表示图。

如上图,主要有两个模块要进行实现。

模块的引用与裁剪

如上图,要对已有代码进行引用与裁剪。

如上图,对于创建图的顶点、边可以直接引用。

如上图,因为题目中(输入样例中)节点从1开始,而算法中初始索引从0开始,因此增加红字部分的操作。

如上图,去掉Floyd中求最短路径的部分。并去掉其中的验错部分(因为不存在错误)。

实现函数

void FindAnimal(MGraph Graph)
{WeightType D[MaxVertexNum][MaxVertexNum], MaxDIst, MinDist;Vertex Animal, i;Floyd(Graph, D);MinDist = INFINITY;for (i = 0; i < Graph->Nv; i++){MaxDist = FindMaxDist(D, i, Graph->Nv);if (MaxDist = INFINITY){Printf("0\n");return;}if (MinDist > MaxDIst){MinDist = MaxDist;Animal = i + i;}}printf("%d %d\n", Animal, MInDist);
}
WeightType FindMaxDist(WeightType D[][MaxVertexNum], Vertex i, int N)
{WeightType MaxDist;Vertex j;MaxDist = 0;for (j = 0; j < N; j++)if (i != j && D[i][j] > MaxDist)MaxDist = D[i][j];return MaxDist;
}

主要的实现代码如上。

【数据结构笔记28】C实现:图练习-选择最长路径最短的节点相关推荐

  1. 【数据结构笔记34】C实现:选择排序与堆排序

    本次笔记内容: 9.3.1 选择排序 9.3.2 堆排序 文章目录 选择排序 堆排序 较为直接的算法 改进后的算法 选择排序 void Selection_Sort(ElementType A[], ...

  2. java图遍历求最长路径_如何在Java中使用递归实现矩阵中最长路径的返回

    我正试图用递归来解决这个问题. 问题是:对于二维正整数数组,我如何返回最长路径(步骤),以便最长路径的每个单元格中的值是从整数的降序序列开始的,并且每个单元格和单元格之间的差异是一个给定的数字(num ...

  3. 大话数据结构笔记-图

    大话数据结构笔记-图 定义 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为 G(V,E), 其中 G表示一个图, V是图G中的顶点的集合, E是图G中边的集合. 顶点就是图中 ...

  4. 数据结构笔记:选择排序

    原文地址添加链接描述 分类目录--数据结构笔记 每一步在未排序部分去比较当前标记的最小值(初始化为第1个)与当前值的大小,更新(或不跟新)最小值的索引,维护的是一个最小值的索引 每一轮找一个最小值,替 ...

  5. 48. 数据结构笔记之四十八的有向无环图的应用关键路径

    48. 数据结构笔记之四十八的有向无环图的应用关键路径 "富贵不淫贫贱乐 , 男儿到此是豪雄.-- 程颢" 来看下有向无环图的另一个应用关键路径. 1.  关键路径 与AOV-网相 ...

  6. 【数据结构笔记21】图的遍历,DFS与BFS,连通图

    本次笔记内容: 6.2.1 图的遍历 - DFS 6.2.2 图的遍历 - BFS 6.2.3 图的遍历 - 为什么需要两种遍历 6.2.4 图的遍历 - 图连不通怎么办? 文章目录 深度优先搜索(D ...

  7. 数据结构与算法思维导图(学习笔记)

    版本 数据结构与算法思维导图V1.0 V1.0分享版本这个可以直接看,不需要下载. 说明 1.free 2.目前内容主要包含内容包含: 数据结构与算法思维导图 包含:线性表.顺序结构.链式结构,栈与队 ...

  8. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学的系列教学视频 本节(28)主要讲解: 用SimpleITK包进行ROI/病灶体积的计算 1.加载包 import SimpleITK as sitk im ...

  9. 堆排序 C++代码实现及思想 排序过程输出 恋上数据结构笔记

    复习梗概 文章目录 复习梗概 什么是堆思想? 堆排序算法怎么来的? 什么是下滤?代码 什么是建堆?代码 堆排序本体 代码及排序过程输出 和时间复杂度 完整代码 什么是堆思想? 最大堆:树形结构,每一个 ...

最新文章

  1. Java基于Quartz的定时任务调度服务(一)
  2. TDSQL在微众银行的大规模实践之路
  3. STM8单片机串口驱动的深度解析
  4. linux信号处理编程实验报告,Linux编程之信号处理
  5. 网站特效-------旋转的图片
  6. SAP PO相关打印编程
  7. linux内核线性地址等于物理地址,Linux 从虚拟地址到物理地址
  8. C++ const vector的迭代器
  9. 创建loop15设备挂载镜像文件(.img)
  10. FPGA入门之一位全加器的实现
  11. css美化table的方法
  12. c语言快速幂,快速幂
  13. 关于LNK2000 _main 已经在 某某某.obj 中定义的问题
  14. 休假管理系统的用况详情和用况表
  15. 登陆远程kvm_KVM远程VMM管理
  16. error:尝试引用已删除的函数或已显式删除函数
  17. OpenGL纹理详解
  18. CSS3中的transition和transform属性
  19. C#网络TCP客户端的实现
  20. .git文件泄露的一次渗透darkhole2

热门文章

  1. Chrome谷歌浏览器 强制跳转https解决方案
  2. PostgreSQL Json字段作为查询条件的解决方案
  3. Electron使用时拦截HTTP请求的解决方案
  4. 解决CocosCreator 在微信小游戏中使用Socket.io 报错的问题
  5. mysql5.6.38占用内存过大问题解决
  6. Java树数据结构? [关闭]
  7. Bower和npm有什么区别?
  8. 如何回滚特定的迁移?
  9. win11怎么解除网络限制 windows11解除网络限制的设置方法
  10. 七彩虹智能主板设置U盘启动教程