我有一个类是Doubly Linked List类,包含带有一个int数据和两个节点prev和next的标准结构。在类中,但在结构之外我还有标准的两个节点,head和tail。我有其他功能,所以我建立了双链表。我现在想要使用类函数删除双向链表中的单个值,例如数据。它可以是一个“索引”或我正在寻找的值,或者。我怎样才能做到这一点?当我尝试删除头部时,我最终只删除了整个列表。这是我的尝试:
void DLList::delItem ()
{
while(head != NULL)
{
if(head->data == 1)
{
delete head;
}
else{
head = head->next;
}
}
}
这是构造函数:
DLList::DLList()
{
struct Node
{
int data;
Node* prev;
Node* next;
};
Node* head;
Node* tail;
}
我还有一个打印值的功能。它工作一次,但随后不再打印值。我不确定他们之后是否会被删除。这是打印功能:
void DLList::print()
{
Node* temp3 = head;
while(temp3 != NULL)
{
cout << temp3->data << " ";
temp3 = temp3->next;
}
cout << endl;
}