Я пытаюсь разработать программу, которая принимает данные из файла, после чего присваивает нумерацию уникальным данным, связанный список также содержит родительские и дочерние списки.
Структура данных:
____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;
}
Таким образом, родительский массив содержит идентификатор узла самого предыдущего узла (может быть больше одного, поскольку, например, E (B и C указывают на него) -> (node-id - 1).
Дочерний массив содержит идентификатор узла мгновенного следующего узла (идентификатор узла +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
Надеюсь, все понятно, пожалуйста, позвольте мне не знать, как мне это реализовать. С Уважением.