C图。不能将边添加到邻接表

时间:2019-04-25 14:44:32

标签: c pointers graph structure

我正在尝试创建图形,并且 addEdge 函数不起作用。 有我使用的代码


typedef struct node {
    int v;
    struct node *next;
}node;
void addEdge(node *adj[],int v,int w){
    node t={v,adj[w]};adj[w]=&t;
    node tt={w,adj[v]};adj[v]=&tt;   
}

1 个答案:

答案 0 :(得分:1)

函数返回时,节点ttt到期,使指向adj中存储的节点的指针无效。

-Arkku

使用malloc。

void addEdge(node *adj[],int v,int w){
    node *t = (node*) malloc(sizeof(node));  
    t->v=v;t->next=adj[w];adj[w]=t;   
    t=(node*) malloc(sizeof(node));
    t->v=w;t->next=adj[v];adj[v]=t;
}

重要提示:将node *adj[]的每个元素初始化为NULL