关于数据结构Mooc后的每一道答案
基本我都已经给出了详解
希望能对大家有所帮助
收藏一下也是方便大家查找吧
希望大家一起进步!

(c语言)浙大数据结构Mooc作者答案集

原题题目



闲谈

最近因为在看《深入计算机系统》神书CSAPP 所以就导致数据结构进度稍慢 但是对于Dijkstra算法和Floyd算法我也花了挺久时间理解的
对于初学数据结构还是希望很多东西透彻一点
如果以后遗忘了 拾起来还是更容易一点的
但是同样也发现 学计算机 时间是真的不够啊!
时间不够! 时间不够! 时间不够!



思路

首先看题
其实如果对Floyd算法自己动手操作过的话 并且也实现过的话
这道题真的是秒解 :)
我做这道题上手
从头开始敲代码花了不到10min
因为对于创建 邻接矩阵图
插入(无向图)
并且在对于这道题就是求
任意两个节点的最短路径
一看就是使用 Floyd算法

这里再把Floyd算法核心代码重新给一下吧


如果还对Flody算法没有很理解的话
可以看一下我之前写的关于Floyd算法理解的博客

Floyd算法讲解+例题思路分析

Floyd核心算法

void Floyd()
{int i,j,k;//k表示每个节点for(k=1;k<=Nv;k++){for(i=1;i<=Nv;i++){for(j=1;j<=Nv;j++){if(G[i][j] > G[i][k] + G[k][j])G[i][j] = G[i][k] + G[k][j];}}}return;
}


代码实现

#include <stdio.h>
#define MAX 110
#define INF 99999int Nv,Ne;
int G[MAX][MAX];//初始化
void InitGraph()
{int i,j;for(i=1;i<=Nv;i++)for(j=1;j<=Nv;j++)G[i][j] = INF;for(i=1;i<=Nv;i++)G[i][i] = 0;return;
}//注意是无向的
void InsertWeight()
{int i;int vertex1,vertex2,weight;for(i=1;i<=Ne;i++){scanf("%d %d %d",&vertex1,&vertex2,&weight);G[vertex1][vertex2] = weight;G[vertex2][vertex1] = weight;}return;
}//核心算法
void Floyd()
{int i,j,k;//k表示每个节点for(k=1;k<=Nv;k++){for(i=1;i<=Nv;i++){for(j=1;j<=Nv;j++){if(G[i][j] > G[i][k] + G[k][j])G[i][j] = G[i][k] + G[k][j];}}}return;
}int Search()
{//tempmax是为了找到每组的最大值//min是为了找到所有行中的最小值//大家可以看一下代码理解一下//很容易想到的int i,j,tempmax,min = INF,rows = 0;for(i=1;i<=Nv;i++){tempmax = 0;for(j=1;j<=Nv;j++){if(G[i][j]>tempmax && G[i][j]!=INF)tempmax = G[i][j];}if(tempmax!=0 && tempmax<min){min = tempmax;rows = i;}}//如果rows=0 说明没找到if(!rows)printf("0");else{for(i=1;i<=Nv;i++){if(i !=rows && G[rows][i] == INF){printf("0");break;}//当已经到最后一列时都没有退出//就说明这一行中这个动物都可以转化为其他动物if(i==Nv)printf("%d %d",rows,min);}}return 0;
}//主函数尽量简洁
int main()
{int i,j;scanf("%d %d",&Nv,&Ne);InitGraph();InsertWeight();Floyd();Search();return 0;
}

结束语

确实难度不是很高
可能也是因为提前先实现了Floyd算法的原因吧
但感觉真的 计科需要读的精品书很多
而时间却不多
与大家一起进步

(c语言)哈利·波特的考试 (25分)相关推荐

  1. 7-4 哈利·波特的考试 (25 分)(C语言实现)

    7-4 哈利·波特的考试 (25 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向 ...

  2. 7-8 哈利·波特的考试 (25 分)

    7-8 哈利·波特的考试 (25 分) 看懂题,比较简单. 用Floyd算法. 1.首先将数据读入,用来初始化图 2.用Floyd得到最短路径(各点到各点的全部最短路径). 3.先求出每个点到其它点的 ...

  3. 7-1 哈利·波特的考试 (25分)

    7-1 哈利·波特的考试 (25分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ...

  4. PTA 哈利·波特的考试 (25分)

    哈利·波特的考试 (25分) 题目链接 问题描述: 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe ...

  5. 【floyd模板】哈利·波特的考试 (25 分)

    立志用最少的代码做最高效的表达 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变化的魔 ...

  6. 7-8 哈利·波特的考试 (25 分)(详解+思路分析)真香啊

    一:题目: 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变化的魔咒就是简单地将原来的 ...

  7. 07-图4 哈利·波特的考试 (25 分)

    哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变化的魔咒就是简单地将原来的魔咒倒过来念 ...

  8. 7-16 哈利·波特的考试 (25分)

    哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变化的魔咒就是简单地将原来的魔咒倒过来念 ...

  9. 7-7 哈利·波特的考试 (25 分)

    #include <iostream> #include <cstdio> #define N 105 #define INF 0x3f3f3f3f; using namesp ...

最新文章

  1. 快手超大规模集群调度优化实践
  2. 如何看待 2020 届校招算法岗「爆炸」的情况?英雄所见略同
  3. 软件包管理器(树链剖分)
  4. 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码
  5. JS 获取元素当前的样式信息
  6. Question | 怎样有效杜绝“羊毛党“的薅羊毛行为?
  7. python人民币小写转大写_python人民币小写转大写辅助工具
  8. 缓存文件可以放在哪里?它们各自的特点是什么?
  9. python产品作者如何去掉_python去除\ufeff、\xa0、\u3000
  10. Ubuntu下tar命令使用详解 .tar解压、.tar压缩
  11. R语言dplyr数据变换
  12. Solr Filter过滤器
  13. 我是IT小小鸟的读后感
  14. 每节课都是一个项目 手把手用STM32打造联网气象站-4-STM32基础三件套-TIM定时器和SYSTICK初始化
  15. 北京“新城卓越”黑中介租房感受
  16. 十款很不错的磁盘碎片整理工具
  17. 简述如何编写java程序_1-4 简述 Eclipse 编写 Java 程序的流程。_学小易找答案
  18. vol.175 李大夫夜话:父母皆祸害?
  19. 网页字体助手 WebFont Helper
  20. ios swift模仿qq登陆界面,xml布局

热门文章

  1. 【第1131期】对于网络爬虫技术的攻与防
  2. 隆重推荐:怪诞行为学
  3. STM8L052C6 低功耗+LCD显示 经验分享
  4. TextView 中文本内容换行
  5. 2021年山东省安全员C证最新解析及山东省安全员C证实操考试视频
  6. 羊驼alpaca php,“草泥马”-----羊驼(Alpaca)
  7. Bitmap recycle() 源码解析
  8. 五色石FCS周报 2019.6.3-2019.6.9
  9. uda1341原理+介绍
  10. iOS中为何用串行队列(Serial Queue)也无法保证对象读写操作的同步?