delete.h
来自「南京航空航天大学王珊珊出版的C++详细课后习题程序集和PPT课件.」· C头文件 代码 · 共 35 行
H
35 行
node *Delete_one_node( node *head, int num )
{
node *p1, *p2;
if( head == NULL) // 处理链表为空时的状况
{
cout << "链表为空,无结点可删!\n";
return(NULL);
}
if( head->data == num) // 若待删除的结点为首结点
{
p1=head;
head=head->next;
delete p1;
cout << "删除了一个结点!\n";
}
else // 删除其他结点
{
p1=head;
p2= head->next; // p1指向的结点在p2指向的结点之前
while(p2->data != num&&p2->next !=NULL ) //先循环查找待删除结点
{ //若p2指向的结点不是待删除结点,并且也不是尾结点时循环
p1=p2;
p2=p2->next; // p1,p2均向后挪动一个结点
}
if(p2->data == num) // 若找到, 删除p2指向的结点
{ // 注意:若p2指向的结点是链尾结点,这里的处理同样适用
p1->next = p2->next;
delete p2;
cout << "删除了一个结点!\n";
}
else cout<<num<<"链表上没有找到要删除的结点!\n";
}
return(head);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?