这段代码是一个名为'add'的函数,用于向图中添加新的城市和路线。该函数接收一个名为'g'的图结构体类型的变量Mgraph作为参数,该变量表示一个图。函数没有返回值。

具体实现如下:

  1. 声明变量i、j、path、a、b、c、num、m1、n1,这些变量用于辅助计算。
  2. 声明字符数组'city1'和'city2',用于存储城市的名称。
  3. 声明字符数组'm'和'n',用于临时存储读取到的字符。
  4. 将图中顶点数量增加1,即'g.numVertexes++',并将其赋值给变量'b'。
  5. 提示用户输入新城市的名称,使用'scanf'函数读取输入,并将其存储在'g.vexs[b-1].city'中('b-1'表示数组下标)。
  6. 提示用户输入需要添加的路线数,使用'scanf'函数读取输入,并将其存储在变量'c'中。
  7. 将图中边的数量增加'c',即'g.numEdges=g.numEdges+c'。
  8. 将新添加的城市与其他城市之间的距离初始化为无穷大,即使用循环遍历('i'从0到'g.numVertexes-1'),将'g.arc[i][b-1]'和'g.arc[b-1][i]'都赋值为'INFINITY'。
  9. 使用循环遍历('i'从0到'c-1'),依次提示用户输入存在路线的城市和城市之间的距离。 a. 使用'scanf'函数读取输入的城市名称,并将其存储在'city2'中。 b. 调用函数'test(g,city2)'判断城市是否存在。如果存在,则跳出循环;否则,提示用户重新输入城市名称。 c. 使用'scanf'函数读取输入的距离,并将其存储在变量'path'中。 d. 调用函数'zhuanhua(g,city2)'将城市名称转化为对应的下标'a'。 e. 将距离'path'赋值给'g.arc[b-1][a]',表示新添加的城市'b'与城市'a'之间的距离。 f. 输出一个空行。
  10. 函数执行完毕。

代码中涉及到的函数包括:

  • 'test(g,city2)':判断城市是否存在。
  • 'zhuanhua(g,city2)':将城市名称转化为对应的下标。

通过调用'add'函数,可以向图中添加新的城市和路线,并更新图的结构信息。


原文地址: https://www.cveoy.top/t/topic/o1GN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录