void Initiate(AdjMGraph *G, int n) { int i, j; for(i = 0; i < n; i++) for(j = 0; j < n; j++) { if(i == j) G->edge[i][j] = 0; else G->edge[i][j] = MaxWeight; } G->numOfEdges = 0; /*边的条数置为0*/ ListInitiate(&G->Vertices); /*顺序表初始化*/ } void InsertVertex(AdjMGraph *G, DataType vertex) { ListInsert(&G->Vertices, G->Vertices.size, vertex); }解释每一行代码的含义
时间: 2024-04-03 20:31:39 浏览: 84
1. `void Initiate(AdjMGraph *G, int n)`: 声明一个名为 `Initiate` 的函数,该函数的参数是一个指向 `AdjMGraph` 结构体的指针 `G` 和一个表示顶点数量的整数 `n`,返回值为空。
2. `int i, j;`: 声明两个整型变量 `i` 和 `j`。
3. `for(i = 0; i < n; i++)`: 循环 `i` 变量从 0 到 `n-1`。
4. `for(j = 0; j < n; j++) {`: 循环 `j` 变量从 0 到 `n-1`,在循环体内执行以下操作。
5. `if(i == j) G->edge[i][j] = 0;`: 如果 `i` 和 `j` 相等,即为同一个顶点,将邻接矩阵 `G->edge` 中第 `i` 行第 `j` 列的值赋为 0。
6. `else G->edge[i][j] = MaxWeight;`: 如果 `i` 和 `j` 不相等,即为不同的顶点,将邻接矩阵 `G->edge` 中第 `i` 行第 `j` 列的值赋为一个表示最大权值的常量 `MaxWeight`。
7. `G->numOfEdges = 0;`: 将存储在结构体 `G` 中的边数 `numOfEdges` 的值置为 0。
8. `ListInitiate(&G->Vertices);`: 调用函数 `ListInitiate` 对结构体 `G` 中存储顶点信息的顺序表 `Vertices` 进行初始化。
9. `void InsertVertex(AdjMGraph *G, DataType vertex) {`: 声明一个名为 `InsertVertex` 的函数,该函数的参数是一个指向 `AdjMGraph` 结构体的指针 `G` 和一个表示要插入的顶点信息的 `DataType` 类型的参数 `vertex`,返回值为空。
10. `ListInsert(&G->Vertices, G->Vertices.size, vertex);`: 调用函数 `ListInsert` 将顶点信息 `vertex` 插入到顺序表 `Vertices` 中的末尾。其中 `G->Vertices.size` 表示顺序表中已有元素的数量,即将要插入的顶点的位置。
阅读全文