void CreatGraph(Graph& graph, City*& city, Route*& route) { int i, j; graph.arcs = new Route * [199]; for (int i = 0; i < 199; ++i) { graph.arcs[i] = new Route[199]; } graph.vexs = new City[199]; graph.arcnum = 1975; graph.vexnum = 199;
时间: 2024-04-27 19:23:27 浏览: 57
这段代码是一个C++函数的定义,函数名为CreatGraph,参数列表包含三个参数:一个是Graph类型的引用graph,另外两个是指向City和Route类型的指针city和route。函数的返回值类型是void。
函数的作用是创建一个图,图的边权值存储在二维数组arcs中,图的顶点存储在一维数组vexs中。这个图有199个顶点,1975条边,其中每个顶点都对应于一个城市,每条边都对应于两个城市之间的一条航线。函数会动态分配内存来为arcs和vexs分配空间,然后对arcs和vexs进行初始化,使得图中的每一条边的权重都为0。
相关问题
int LocateVex(string e, City* c) { int i = 0; for (i = 0; i < 199; i++) { if (e == c[i].city) { return i; break; } } } void CreatGraph(Graph& graph, City*& city, Route*& route) { int i, j; graph.arcs = new Route * [199]; for (int i = 0; i < 199; ++i) { graph.arcs[i] = new Route[199]; } graph.vexs = new City[199]; graph.arcnum = 1975; graph.vexnum = 199; //构建图 //依次录入顶点的数据 for (int i = 0; i < (graph.vexnum); i++) { graph.vexs[i] = city[i]; } //初始化二维矩阵 for (i = 0; i < (graph.vexnum); i++) { for (j = 0; j < (graph.vexnum); j++) { graph.arcs[i][j].cost = INFINITY; graph.arcs[i][j].time = INFINITY; } } //添加弧数据 for (int i = 0; i < graph.arcnum; i++) { int sta = LocateVex(route[i].start_city, city); int end = LocateVex(route[i].end_city, city); graph.arcs[sta][end].cost = route[i].cost; graph.arcs[sta][end].time = route[i].time; } }
这段代码是关于图的数据结构的构建和初始化。其中包含了两个函数:LocateVex 和 CreatGraph。LocateVex 函数是用来在城市数组中查找特定城市的位置,它会返回该城市在数组中的下标。CreatGraph 函数则是用来构建图的,它首先会初始化一个二维矩阵,并将顶点数据录入图中,然后将弧的数据添加到矩阵中。这段代码的具体实现是基于一个有199个城市和1975条路径的图。
int main() { int** way = NULL; float* D = NULL; int s=0, e=0, p=0; int n = 1; int* c; c = new int[10]; string start, end; //读取 city 表 City* cities = NULL; Cities(cities); //读取 route 表 Route* route = NULL; Routes(route); //建立邻接矩阵 Graph graph; CreatGraph(graph, cities, route);
这段代码是用 C++ 实现的,主要包括以下内容:
1. 定义了一个指向指针的指针 way,和一个指向 float 类型的指针 D,以及 s、e、p 三个整型变量和一个整型变量 n。
2. 动态分配了一个长度为 10 的整型数组 c。
3. 定义了两个字符串类型的变量 start 和 end。
4. 调用 Cities 函数和 Routes 函数分别从 city 表和 route 表中读取数据,并将数据存储在 cities 和 route 指针变量中。
5. 调用 CreatGraph 函数建立邻接矩阵,该函数接受三个参数,第一个参数是一个 Graph 类型的变量,第二个参数是一个 City 类型的指针,第三个参数是一个 Route 类型的指针。
阅读全文