Вложенные двусвязные списки в переполнении стека

Как лучше всего хранить двусвязные списки внутри одного двусвязного списка? Желательно, чтобы я использовал только одну структуру, например:

struct node{
string data;
node* next = NULL;
node* prev = NULL;
};

и используйте это, чтобы иметь возможность хранить двусвязный список внутри двусвязного списка, чтобы хранить все мои двусвязные списки.

У меня есть обычная функция вставки, но это не сработает, потому что параметры (node*& start, string data), Итак, я создал другой метод вставки, который пытается сохранить двусвязный список в узле большего двусвязного списка, но оттуда становится облачно. Любая помощь будет оценена.

-1

Решение

Ваш узел состоит из данных и ссылок.

Вы можете вставить связанный список как часть раздела данных:

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 указатели с классом списка.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]