Как добавить и удалить ребра из неориентированного графа, представленного списком смежности в C? - PullRequest
0 голосов
/ 24 апреля 2020

Мне нужна помощь, я пытаюсь создать список смежности для представления графа в C, я могу добавить одно ребро в каждый список узлов, но я не знаю, как добавить более одного, я также не знаю, как удалить ребро, вот что у меня есть

edit 1 * Я создаю список внутри основной функции как массив: List * adjlist [Max] = {0};

typedef struct Node{
    int vertexNum;
    struct Node *next;
} Node;

typedef struct List{
    Node *head;
} List;

void Connect(List **adjlist, int v1, int v2){
    Node *dest, *tmp, *src;
    if(adjlist[v1]->head == NULL){
        src= (Node *)malloc(sizeof(Node));
        src->vertexNum = v2;
        src->next = NULL;
        adjlist[v1]->head=src;
    }

    dest = (Node *)malloc(sizeof(Node));
    dest->vertexNum = v2;
    dest->next=NULL;
    tmp=adjlist[v1]->head;

    while(tmp->next != NULL){
        tmp= tmp->next;
    }

        adjlist = tmp;
}
...