2013-02-11 36 views
-1
template <class T> 
void List<T>::insertAtHead(T item) 
{ 
    ListItem<T> *node=new ListItem<T>(item); 
    ListItem<T> *temp; 

    temp=head; 
    head=node; 
    head->next=temp; 
    temp->prev=head; 
} 

可有人请指出什么是错的这段代码?我米制作与classes.I链表会很感激它链表插入(使用类)

+7

对于我们来说,告诉你什么是错误的代码,你可以通过告诉什么是不工作的帮助我们。 – Achrome 2013-02-11 10:56:36

+4

你的意思是除了不检查空指针? – 2013-02-11 10:57:59

+1

它可能是头指向0x0000,当你这样做,它应该崩溃在“head-> next = temp;” – Xathereal 2013-02-11 10:59:26

回答

1

你可能有head == NULL启动。尝试检查空指针:

template <class T> 
void List<T>::insertAtHead(T item) 
{ 
    ListItem<T> *node=new ListItem<T>(item); 
    ListItem<T> *temp; 

    temp=head; 
    head=node; 
    head->next=temp; 
    if (temp) 
     temp->prev=head; 
} 
+0

这应该是答案:P – Xathereal 2013-02-11 11:04:41

+0

感谢指出1 – User14229754 2013-02-11 11:07:00