我在理解为什么当我创建两个或多个节点时(如下所示),函数void del_end()
将只删除char name[20]
而不是整个节点。我如何解决这个问题没有内存泄漏?删除双向链表中的节点(C++)
#include <iostream>
using namespace std;
struct node
{
char name[20];
char profession[20];
int age;
node *nxt;
node *prv;
};
node *start_ptr = NULL;
void del_end()
{
node *temp, *temp2;
temp = start_ptr;
if (start_ptr == NULL)
cout << "Can't delete: there are no nodes" << endl;
else if (start_ptr != NULL && start_ptr->nxt == NULL)
{start_ptr=NULL;}
else
{
while (temp->nxt != NULL)
{
temp = temp->nxt;
}
temp2=temp->prv;
delete temp;
temp->nxt= NULL;
}
}
这功课吗? – Karmastan 2010-07-06 18:46:28
我认为这是作业吗?如果是这种情况,请添加作业标签。 – pmr 2010-07-06 18:47:24