![](https://csdnimg.cn/release/download_crawler_static/87807512/bg4.jpg)
. . . . .. .
示要插入的位置,x 表示要插入的景点的信息。同时我在插入顶点时也将他与其他顶点之间
的距离设置为 MaxWeight,这样做主要是为了方便在 Floyd 函数里面求最短路径
对于选做要求:删除景点。其工作流程图为
menu() DeleteVertic() ListDelete ()
DeleteVertic()函数原型为:
void DeleteVertic() 他不带任何参数,该函数的功能就是在函数体里面输入要删除的
景点的名称,然后根据名称找到该景点在线性表中的存储位置,然后调用线性表中的
ListDelete ()函数进行相应顶点的删除。
ListDelete ()函数原型为:
ListDelete(SeqList *L, int i, DataType *x) 其中参数 L 为存放顶点信息的线性表,i 表
示要删除顶点在线性表中的存放位置,,x 就是要删除的那一个景点。它的功能就是从线性
表中删除指定的顶点。
对于选做要求:增、删道路,流程图为:
menu() AddRoad() InsertEdge ()
DeleteRoad() DeleteEdge ()
AddRoad()和 DeleteRoad()两函数原型为:
void AddRoad()和 void DeleteRoad()。这两个函数都不带参数,它们的功能就是在这
两个函数里面输入要删除要增加或者的边连接的两个景点的名称,然后在线性表中找到这两
个景点的相对存储空间,最后调用 InsertEdge ()或者 DeleteEdge ()函数。
InsertEdge ()和 DeleteEdge ()两函数原型为:
void InsertEdge(AdjMGraph *G, int v1, int v2, int weight)
void DeleteEdge(AdjMGraph *G, int v1, int v2) 这两个函数中同名参数所代表的意
义是相同的,其中 v1, v2 是所输入景点在线性表中的相对位置;weight 就是增加的边的权
值
<2>函数接口说明
我所设计整个程序就是一些子函数的集合,每个功能都对应一个或者几个子函数,
他们之间可以没有任何限制,只要能保证程序正确运行就可以调用,特别是AdjMGraph.h
, AdjMGraph.h 和 SeqList.h 头文件之中的函数,他们被很多函数调用过。这其中都没有任
何特殊类型的函数
2.3 详细设计:
根据题目分析,对于信息查询与修改功能,设计如下:
1,输入景点名称
2,从线性表头扫描到表尾,
if(找到该景点) 输出景点结构体信息
else 输出提示信息找不到该顶点
实现查找最短路径,设计如下:
1, 景点名称
2,根据输入的信息找到它们所在的线性表中的位置
3,调用 Floyd 算法找出最短路径
4,输出信息
c. .. .. .