C++ 从C+中删除单个项目+;双链表
我有一个双链表类,包含一个int数据和两个prev和next节点的标准结构。在类内部但在结构外部,我也有标准的两个节点,head和tail。我还有其他的函数,所以我的双链表就建立起来了。现在,我想使用类函数删除双链接列表中的单个值,例如数据。它可以是一个“索引”或我正在寻找的一个值,或者。我该怎么做?当我尝试删除head时,我最终只是删除了整个列表。以下是我的尝试:C++ 从C+中删除单个项目+;双链表,c++,list,double,C++,List,Double,我有一个双链表类,包含一个int数据和两个prev和next节点的标准结构。在类内部但在结构外部,我也有标准的两个节点,head和tail。我还有其他的函数,所以我的双链表就建立起来了。现在,我想使用类函数删除双链接列表中的单个值,例如数据。它可以是一个“索引”或我正在寻找的一个值,或者。我该怎么做?当我尝试删除head时,我最终只是删除了整个列表。以下是我的尝试: void DLList::delItem () { while(head != NULL) { i
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;
}
void DLList::print()
{
节点*temp3=头部;
while(temp3!=NULL)
{
下一步是收集数据;
}
cout查看这篇关于CodeProject的文章:
考虑不要发明轮子,使用STD::list < /P>类代码。如果头是类的成员,它显然会删除类。如果<代码>头<代码>是你真正的列表头,那么<代码>头=头->下总是将你的列表加起来(并且泄漏内存)。