gpt4 book ai didi

创建邻接单链表

转载 作者:行者123 更新时间:2023-11-30 18:04:01 25 4
gpt4 key购买 nike

我有类似图表的 ADT:

typedef struct element {
int info;
struct element *link;
} Tnode;

typedef struct graphAdjList {
int nodes;
Tnode *adjList[MAX]; // array of 20 pointers to Tnode
} Tgraph;

Tgraph *readGraph(FILE *fd);
void printGraph(Tgraph *g);
void dfs(Tgraph *g, int start, int visited[], int pred[]);
void destroyGraph(Tgraph *g);

并附上包含以下内容的文件“maze.txt”:

0 1 6 8
1 0 2 3
2 10 11
3 1 4 12
4 3 13
5 4 6 9
6 5 7
7 8 9
8 0 7 14
9 15 5 7
10 2
11 2
12 3
13 4
14 8
15 9

其中 0 1 6 8 表示节点号 0 与节点 1、6 和 8 有(单向)连接。现在我真的不知道如何通过方法 readGraph() 基于上面的列表构造图。你们能否指出我的详细实现,因为我是 C 新手?非常感谢

最佳答案

看起来你的老师想让你把图表读成 adjacency list .

这是一个sample implementation在 C99 中。

将其保存到名为 maze.c 的文件中,然后使用(例如)进行编译:

gcc -g -O2 -Wall -Werror -std=c99 -o maze maze.c

我没有实现 dfs() 函数,因为我并不完全清楚它应该做什么。我假设您的作业中有一些文字解释了每个功能的要求。您可能还需要重写 printGraph() 函数才能满足作业要求。

关于创建邻接单链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com