Как лучше всего хранить двусвязные списки внутри одного двусвязного списка? Желательно, чтобы я использовал только одну структуру, например:
struct node{
string data;
node* next = NULL;
node* prev = NULL;
};
и используйте это, чтобы иметь возможность хранить двусвязный список внутри двусвязного списка, чтобы хранить все мои двусвязные списки.
У меня есть обычная функция вставки, но это не сработает, потому что параметры (node*& start, string data)
, Итак, я создал другой метод вставки, который пытается сохранить двусвязный список в узле большего двусвязного списка, но оттуда становится облачно. Любая помощь будет оценена.
Ваш узел состоит из данных и ссылок.
Вы можете вставить связанный список как часть раздела данных:
struct Node
{
std::string Data
std::list</*...*/> nested_list;
Node * previous;
Node * next;
};
Если вам не нравится использовать std::list
Вы могли бы пойти с этим:
struct Nested_Node
{
Nested_Node * previous;
Nested_Node * next;
/* add data if necessary */
};
struct Node
{
std::string data;
Nested_Node * nested_head;
Nested_Node * nested_tail;
Node * previous;
Node * next;
};
Вышеуказанные структуры зависят от того, как вы хотите, чтобы ваш вложенный связанный список был организован.
каждый Node
содержит заголовок и хвост связанного списка. Если вы объявите вложенный список как отдельную структуру, вы можете заменить Nested_Node
указатели с классом списка.
Других решений пока нет …