0
template <class T>
void List<T>::insertAtHead(T item)
{
     ListItem<T> *node=new ListItem<T>(item);
     ListItem<T> *temp=head;
     if (temp==NULL)
     {                
         head=node;
     }
     else if (temp!=NULL)
     {
         node->next=temp;     
         temp->prev=node;
         head=node;
     }                                
 }

我正在使用类创建一个链表。ListItem 是一个包含下一个和前一个指针的结构,每当创建一个新节点时,它们在结构中被指向 NULL。ListItem 具有数据类型 T 的值,可以是从 int 到的任何值字符串。我想知道这段代码有没有漏洞。它基本上是数据结构的分配,并且已经给了我们一个测试文件来测试我们的代码。但是当我运行那个测试文件时,它失败了。代码。我只是想知道这段代码有什么问题。谢谢

4

1 回答 1

0

我假设你有一个head变量作为你List输入的成员变量

另外,根据您的next/prev参考资料,我假设您有一个双向链表:

ListItem<T> *temp = head;

if (temp != NULL) {
    temp->prev = node;
    head = node;
    node->prev = NULL;
    node->next = temp;
} else {
    head = node;
    node->prev = NULL;
    node->next = NULL;
}    
于 2013-02-11T18:31:49.190 回答