C中的图形结构

时间:2017-11-19 09:01:07

标签: c struct graph

我正在使用动态2D数组。

我想在结构中实现一个图形,所以我可以这样调用:

initialize(&costs);
initialize(&pred);

图形结构为G = [ COSTS[1:n,1:n], pred[1:n, 1:n], n],其中n是顶点数。

这就是我所拥有的:

#include <stdio.h>
#include <stdlib.h>

int main(){
    int **matrix = NULL;
    int n = 0;
    int i, j;

    scanf("%d", &n);

    matrix = (int**)calloc(n, sizeof(int*));
    // matrix is now an array of pointers to integers, which can be used as an array of integer arrays, hence a 2d matrix

    for (i = 0; i < n; i++) {
    // create an array for each ith element of matrix;
        matrix[i] = (int*)calloc(n, sizeof(int));
    }

    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            matrix[i][j] = 0; //initialize values
        }
    }
}

你能建议怎么做吗?

1 个答案:

答案 0 :(得分:0)

所以你想要一个包含两个矩阵的结构?您也可以将n放入其中,这样就可以了:

typedef struct {
    int n;
    int **cost;
    int **pred;
} graph;

依次使用您在每个矩阵上编写的初始化代码。如果这是C,则不要转换malloc()的返回值。