我正在尝试创建图表,但 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;
}
最佳答案
节点t
和tt
在函数返回时过期,使得存储在adj
中的指向它们的指针无效。
-阿库
使用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
关于C图。无法将边添加到邻接表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55852007/