C图。无法将边添加到邻接表中

标签 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;   
}

最佳答案

节点ttt在函数返回时过期,使得存储在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/

相关文章:

algorithm - 为 A* 算法寻找启发式方法有哪些好方法?

java - 图邻接表的实现

c++ - 我应该使用 C(99) boolean 值吗? (还有 C++ 中的 C++ boolean 值?)

c++ - 以任何方式多次打开共享内存是否不好?

c - 视频内存访问和后缀递增

c - 通过指针分配数组元素值时出现问题

python - 在不指定结束节点的情况下查找所有路径?

c - STM32F103 编码器接口(interface)模式下的 Timer2 问题

c - Bash 一个 liner 来编译、执行和回显返回值?

c - 指针和链表节点创建错误