gpt4 book ai didi

c - 在边数组中找到一条边

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:27:27 26 4
gpt4 key购买 nike

假设我有一个名为 Edge 的结构,表示图形的边。该结构的构造如下:

struct Edge 
{
int src, dest, weight,type;
};

其中 edge[x].src 给出边 x 的起点,edge[x].dest 给出终点。

我们还假设 (source,destination) 的每个组合都是唯一的

如果我有一条边的目的地和源头,有没有一种方法可以找到这两条边属于哪条边,而不必检查整个数组 edge[]

边缘是这样初始化的:

edge[0].src = 0; 
edge[0].dest = 1;
edge[0].weight = 10;

edge[1].src = 0;
edge[1].dest = 2;
edge[1].weight = 6;

例如,如果我有 edge[x].dest=1` 和 edge[x].src=0,我如何找到 x?

最佳答案

也许还有像这样的第二种数据结构。这里的矩阵有 N*N 个单元格,其中每个单元格都有你想要的“边 id”。

int matrix[MAX_NODES][MAX_NODES];
int i = 0;
int j = 0;
int k = 0;

/* matrix initialization */
for(i=0; i<MAX_NODES; i++) {
for(j=0; j<MAX_NODES; i++) {
matrix[i][j] = -1;
}
}

/* edge id assing */
for(k=0; k<MAXIMUM_EDGES; i++) {
matrix[edge[k].src][edge[k].dest] = k;
}

/* now you can get weight from matrix */
printf("edge id for src 0 and dest 1 is %d \n",matrix[0][1]);

关于c - 在边数组中找到一条边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com