结构体与共用体04 零基础入门学习C语言56

第十章:结构体与共用体04

 

让编程改变世界

Change the world by program


 

链表例题讲解

  [caption id="attachment_187" align="aligncenter" width="263"] 链表例题[/caption]   今天,我们将以图文并茂的方式来展示链表的具体创建过程!! [caption id="attachment_188" align="aligncenter" width="288"] 链表原理[/caption]   我们约定学号不会为零,如果输入的学号为0,则表示建立链表的过程完成,该结点不应连接到链表中。 如果输入的p1->num不等于0,则输入的是第一个结点数据(n=1),令head=p1,即把p1的值赋给head,也就是使head也指向新开辟的结点p1所指向的新开辟的结点就成为链表中第一个结点。   再开辟一个结点并使p1指向它,并输入该结点的数据。 [caption id="attachment_189" align="aligncenter" width="300"] 链表原理[/caption] [caption id="attachment_190" align="aligncenter" width="300"] 链表原理[/caption] [caption id="attachment_191" align="aligncenter" width="300"] 链表原理[/caption]  

对链表的删除操作

  从一个动态链表中删去一个结点,并不是真正从内存中把它抹掉,而是把它从链表中分离开来,只要撤销原来的链接关系即可。 [caption id="attachment_192" align="aligncenter" width="300"] 链表的删除操作[/caption]  

随堂练习

题目:写一函数以删除动态链表中指定的结点。  

解题思路:

一、从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。 二、如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。 三、可以设两个指针变量p1和p2,先使p1指向第一个结点 。 四、如果要删除的不是第一个结点,则使p1后移指向下一个结点(将p1->next赋给p1),在此之前应将p1的值赋给p2 ,使p2指向刚才检查过的那个结点。 五、将以上几点我们综合得出算法流程图: [caption id="attachment_193" align="aligncenter" width="300"] 链表练习[/caption] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LBLVEDXIDOAO']视频下载[/Downlink]
原文地址:https://www.cnblogs.com/LoveFishC/p/3846065.html