数据结构之链表的删除
发布日期:2022-02-02 02:58:08 浏览次数:1 分类:技术文章

本文共 1258 字,大约阅读时间需要 4 分钟。

删除结点原则:
不改变原来的排列顺序,只是从链表中分离开来,撤消原来的链接关系。
两种情况:
1、要删的结点是头指针所指的结点则直接操作;
2、不是头结点,要依次往下找。
另外要考虑:空表和找不到要删除的结点


需要由两个临时指针:
P1: 判断指向的结点是不是要删除的结点(用于寻找);
P2: 始终指向P1的前面一个结点;

代码实现:

#include 
   
    #include 
    
     #include 
     
      using namespace std;struct student{
      
int num,score;
student *next;};struct student *del(student *head,int num){
struct student *p1,*p2;
if(head==NULL)
{
cout<<"NULL!"<
}
p1=head;
while(num!=p1->num&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if(p1==head)head=head->next;
else   p2->next=p1->next;
}
return head;}int main(){
int num;
struct student a,b,c,d,e,*head,*p,*scur;
a.num=101;a.score=120;
b.num=102;b.score=121;
c.num=103;c.score=122;
d.num=104;d.score=123;
e.num=106;e.score=125;
head=&a;a.next=&b;b.next=&c;c.next=&d;d.next=&e;e.next=NULL;
p=head;
cout<<"请输入要删除的学号: ";
cin>>num;
del(head,num);
do
{
if(p==head)
{
delete head;
}
else
{
cout< num<<" "< score<
}
p=p->next;
}
while(p!=NULL);
return 0;}



转载地址:https://blog.csdn.net/u010368749/article/details/19070425 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:动态规划---hdu1864---最大报销额
下一篇:数据结构之链表的插入

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.36.149.19]2022年06月20日 10时36分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

c语言 realpath函数,getenv_s - [ C语言中文开发手册 ] - 在线原生手册 - php中文网 2019-06-17 01:25:44
c 语言获取网页源码,c++实现发送http请求通过get方式获取网页源代码 2019-06-17 01:25:44
c语言综合应用题哪几步,计算机二级C上机考试综合应用题 2019-06-17 01:25:44
c语言投票程序设计,C语言课程设计-投票程序设计.doc 2019-06-17 01:25:43
中国海洋大学c语言上机作业,2014级中国海洋大学C语言上机题库及答案.docx 2019-06-17 01:25:43
debian linux 7 安装,Debian 7安装设置教程 2019-06-17 01:25:42
linux鼠标手势,Linux 系统中全能的鼠标手势——Easystroke.docx 2019-06-17 01:25:42
linux亮度调节指令,Linux Mint 亮度调节——xrandr命令学习 2019-06-17 01:25:41
linux猜拳游戏代码,在Linux下通过gtk做一个简单的小游戏(猜拳) 2019-06-17 01:25:40
linux变量默认值,使用bash中的单个命令为shell变量分配默认值 2019-06-17 01:25:40
linux统计数据为未知的行数,Linux统计行数命令wc(转) 2019-06-17 01:25:39
linux系统中启动火狐浏览器提示选择配置文件,为 Firefox Beta 设置专用配置文件... 2019-06-17 01:25:39
linux网络接入控制,PacketFence v7.0发布,网络接入控制 2019-06-17 01:25:38
linux 网络负载,一台Linux服务器可以负载多少个连接? 2019-06-17 01:25:38
linux6右键终端单词,shell脚本--for循环打印下面这句话中字母数不大于6的单词 2019-06-17 01:25:37
linux扩容脚本,读书笔记--101个shell脚本 之#9 2019-06-17 01:25:37
linux 统计多少列命令,Linux shell命令统计某列去重后的值 2019-06-17 01:25:36
oracle拓展磁盘空间,OracleVM扩容磁盘空间-Oracle 2019-06-17 01:25:35
oracle远程监听配置文件,CentOS6.5 Oracle 远程监听配置 2019-06-17 01:25:35
matlab用RBF预测的程序,【求助】RBF数据预测建模仿真 2019-06-17 01:25:35