1

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

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

我创建了一个静态列表:dlist<Node<int>& > _plist; 我有一个函数:insertToHead ( T const& dataToInsert); 但是从使用链表的类中,我只有指向 head 的指针,类似于 : Node<T>*。当我尝试将 传递Node<T>*给 a时,它给了我一个错误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 链接列表之间建立链接的正确方法吗?

4

1 回答 1

0

使用标准容器,您不能指向元素,因为主要设计是元素仅由容器管理。

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

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

于 2012-09-19T05:28:41.873 回答