在一个双向链表中存储双向链表的最佳方法是什么?最好,我只想使用一个结构,如:
struct node{
string data;
node* next = NULL;
node* prev = NULL;
};
并使用它可以在双向链表中存储双向链表以保存我所有的双向链表。
我有一个普通的插入函数,但这不起作用,因为参数是(node*& start, string data)
。所以我创建了另一种插入方法,试图将双向链表存储到一个较大的双向链表的节点中,但是它从那里变得多云。任何帮助,将不胜感激。
答案 0 :(得分:0)
您的节点由数据和链接组成。
您可以将链接列表作为数据部分的一部分插入:
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
指针。