链接列表的链接列表

时间:2012-09-19 05:24:55

标签: c++ doubly-linked-list

我正在尝试创建一个包含其他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链接列表之间进行链接的正确方法吗?

1 个答案:

答案 0 :(得分:0)

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

你所做的是一个容器容器,例如你的dlist< dlist<int> >

在其他更复杂的情况下,你会对标准库感到不快...例如,如果你想要同时包含在两个独立链表中的元素,那么就没有标准容器和你的解决方案必须自己编写数据结构代码,或者必须接受为某些操作支付额外费用。