链表的链表

Linked list of linked lists

本文关键字:链表      更新时间:2023-10-16

我正在尝试创建一个将保存其他 int 链表的链表,我需要能够从主链表访问 int 链表。

我的问题是我如何指向主链表的节点以保存 int 链表的头部?

我创建了一个静态列表:dlist<Node<int>& > _plist;我有一个功能:insertToHead ( T const& dataToInsert);但是从使用链表的类中,我只有指向头部的指针,Node<T>* 。当我尝试将Node<T>*传递给T const&时,它会给我一个错误。

这是使用链表的类的构造函数:

Set::Set(int numArray[], int size)
{
    dlist<Node<int> > _plist; //static main list
    dlist<int> _intList ; //int list
    dlist<int> list;     //int list
    int i;
    for (i=0; i < size; i++)
    {
       list.insertInOrder(numArray[i]); //insert in to int list
    }
    this->_intList = list;
    this->_plist.insertToHead(  _intList.getHead()); //gives an error
};

这是在主列表和 int 链表之间建立链接的正确方法吗?

对于标准容器,您无法指向元素,因为主要设计是元素仅由容器管理。

您所做的是容器的容器,即在您的情况下是dlist< dlist<int> >

然而,在其他更复杂的情况下,您对标准库不走运......例如,如果您希望同时包含两个独立链表中的元素,则标准容器没有解决方案,您必须自己编写数据结构代码,或者您必须接受为某些操作支付额外费用。