我正在尝试创建图形,并且 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;
}
答案 0 :(得分:1)
函数返回时,节点t
和tt
到期,使指向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