我正在尝试设计一个从文件中获取数据的程序,然后对唯一数据进行编号,链表还包含父列表和子列表。
数据结构:
____A
/ |
B C
| / \
E--> F G
| | |
I J K
节点可以有多个下一个节点(例如A和C),并且可以有多个前一个节点。
文本文件包含这样的数据,我将从文件中获取数据并将它们转换为链表:
A
B
E
I
A
C
E
F
J
A
C
G
K
我的问题:是否可以创建具有多个下一个或多个先前节点的节点的链表,如果是这样,结构会是什么样子?
我试过的:
我制作了一个结构,其中包含一个由 4 个整数组成的数组,用于父子元素。
struct abcd{
char data;
int nodeid;
int parent[4];
int child[4];
struct abcd *next;
}
所以父数组保存了大多数前一个节点的节点ID(可以不止一个,因为例如E(B&C指向它)->(节点ID - 1)。
子数组保存即时下一个节点的节点 ID(节点 ID +1)。
A 或任何其他节点没有重复节点。
输出:
1 : A <--
2 : B <-- 1
3 E <-- 2,5
4 : I <-- 3
5 : C <-- 1
6 : F <-- 3
7 : J <-- 6
8 : G <-- 5
9 : K <-- 8
希望它清楚,请让我不知道我应该如何实施它。问候。