diff --git a/code/creat.cpp b/code/creat.h similarity index 100% rename from code/creat.cpp rename to code/creat.h diff --git a/code/function.cpp b/code/function.h similarity index 97% rename from code/function.cpp rename to code/function.h index 359395c..03c2f2b 100644 --- a/code/function.cpp +++ b/code/function.h @@ -36,7 +36,7 @@ 输入:两个点的编号 输出:无 ***********************/ - int addbian(MatGrath &G) + void addbian(MatGrath &G) { int b,c,d; int i,j; printf("请输入你要增加的边的两个点\n"); @@ -58,7 +58,7 @@ 输入:与其他点的边的权值 输出:无 ***********************/ - int adddian(MatGrath &G) + void adddian(MatGrath &G) { int a; int b; @@ -100,7 +100,7 @@ 输入:要修改的城市编号,以及修改后的城市信息 输出:无 ***********************/ - int modify(MatGrath &G) + void modify(MatGrath &G) { int a; int flag=1; diff --git a/code/main.cpp b/code/main.cpp index ce8ce4d..73e926d 100644 --- a/code/main.cpp +++ b/code/main.cpp @@ -2,8 +2,13 @@ #include #include #include -#include "type.h" #include +#include "type.h" +#include "menu.h" +#include "function.h" +#include "creat.h" +#include "short.h" + int CreatGrath(MatGrath &G); //创造图 int DFS(MatGrath &G,int m); @@ -11,22 +16,21 @@ void ShortestPath(MatGrath &G,int v,int w); //Dijkstra算法求最短 void Ppath(MatGrath &G,int path[],int w,int v); //前向递归查找路径上的顶点 int Ppath1(MatGrath &G,int path[][MAXV],int v,int w);//前向递归查找路径上的顶点 -int ShortestMoney(MatGrath &G,int v,int w); //用floyd算法求最少费用 - +void ShortestMoney(MatGrath &G,int v,int w); //用floyd算法求最少费用 + int menu(void); int delet(MatGrath &G,int y,int x); int search(MatGrath &G); //查找某一个城市的信息 -int addbian(MatGrath &G); //增加城市的边信息 -int adddian(MatGrath &G); //增加城市的信息 -int modify(MatGrath &G); //修改城市信息 +void addbian(MatGrath &G); //增加城市的边信息 +void adddian(MatGrath &G); //增加城市的信息 +void modify(MatGrath &G); //修改城市信息 int display(MatGrath &G);//输出所有城市信息 - -int danyuan(MatGrath &G,int d); //求两点之间的最短路径 +void danyuan(MatGrath &G,int d); //求两点之间的最短路径 int Ppath2(MatGrath &G,int path[],int i,int v); - + int main() { int a; //case语句的选择 diff --git a/code/menu.cpp b/code/menu.h similarity index 100% rename from code/menu.cpp rename to code/menu.h diff --git a/code/short.cpp b/code/short.h similarity index 96% rename from code/short.cpp rename to code/short.h index 7215fb4..365b498 100644 --- a/code/short.cpp +++ b/code/short.h @@ -1,5 +1,7 @@ #include"type.h" + + /*********************** 功能:用floyd算法求给出的两点之间的最短路径 @@ -17,7 +19,7 @@ void Ppath(MatGrath &G,int path[],int w,int v) //前向递归查找路径上的 } -int ShortestPath(MatGrath &G,int v,int w)//求两点之间的最短路径 +void ShortestPath(MatGrath &G,int v,int w)//求两点之间的最短路径 { int dist[MAXV],path[MAXV]; int s[MAXV]; @@ -87,6 +89,8 @@ int Ppath1(MatGrath &G,int path[][MAXV],int v,int w) //前向递归查找 Ppath1(G,path,k,w); //找顶点k的前一个顶点j } + + void ShortestMoney(MatGrath &G,int v,int w)//求花费最少的路径 { int A[MAXV][MAXV],path[MAXV][MAXV]; @@ -138,15 +142,14 @@ int Ppath2(MatGrath &G,int path[],int i,int v) //前向递归查找路径上的 { int k; k=path[i]; - if (k==v) - return k; //找到了起点则返回 + if (k==v) return k; //找到了起点则返回 Ppath2(G,path,k,v); //找顶点k的前一个顶点 printf("%s->",G.vexs[k].sight);//输出顶点k } -int danyuan(MatGrath &G,int v)//求两点之间的最短路径 +void danyuan(MatGrath &G,int v)//求两点之间的最短路径 { int dist[MAXV],path[MAXV]; int s[MAXV]; diff --git a/code/tempCodeRunnerFile.h b/code/tempCodeRunnerFile.h new file mode 100644 index 0000000..54caf60 --- /dev/null +++ b/code/tempCodeRunnerFile.h @@ -0,0 +1 @@ +] \ No newline at end of file diff --git a/code/type.h b/code/type.h index 8408f59..92855ba 100644 --- a/code/type.h +++ b/code/type.h @@ -1,28 +1,29 @@ -#include +#pragma once +#ifndef _TEST_H_ +#define _TEST_H_ + #define NO 30 #define MAXV 100 //最大顶点个数 #define INF 32767 //INF表示∞ -typedef struct + +struct ArcCell { int length;//边的长度,既两个地点之的长 int money; -}ArcCell; //定义边的类型 +}; //定义边的类型 -typedef struct +struct VertexType { int no; //顶点的编号 char sight[10]; //地点 char introduction[100]; //地点的介绍 -}VertexType; //定义顶点的类型 +}; //定义顶点的类型 -typedef struct +struct MatGrath { int vexnum; //顶点数 int arcnum; //边数 VertexType vexs[NO]; //在图结构体中调用点的结构体 ArcCell arc[NO][NO]; //在图结构体中调用边的结构体 -}MatGrath; +}; - - - - +#endif \ No newline at end of file