打印

C解析之十链表进阶

[复制链接]
938|4
手机看帖
扫描二维码
随时随地手机跟帖
沙发
elecintop|  楼主 | 2014-4-28 22:59 | 只看该作者
1.链表的插入:将新的节点插入到链表指定的位置。

上图数字1,2分别指示了这两个操作步骤。插入节点的关键代码:
p1->next = p;
p->next = p2;

使用特权

评论回复
板凳
elecintop|  楼主 | 2014-4-28 23:03 | 只看该作者
2.链表的删除: 将一个节点从链表删除。

上图的数字1指示了删除所需的一步操作。有同学可能觉得,P的指针还指向P2呢,这丝毫不能改变P已经被链表删除了的事实。链表删除操作的核心代码:
P1->next=P->next;   //P-next指向的是P2
或者 :P1->next=P2;

使用特权

评论回复
地板
elecintop|  楼主 | 2014-4-28 23:07 | 只看该作者
3.链表的查询:遍历链表查找满足特定要求的节点。
链表的查询,需要遍历每一个节点,那么在遍历的过程中同样可以输出链表,遍历的最后可以找到链表的末尾(此处同时解释【C解析之九】链表初探中最后读者可能存在疑问的链表输出与找到链表的末尾)。
依次分析:
数字1: 将指针指向第一个链表节点,代码:P=Head->next;
数字2: 指针指向下一个链表节点,    代码:P=P->next;
数字3: 指针继续指向下一个节点,    代码:P=P->next;
最后的结果:P-next=NULL,此时P指向的加点便是末尾的节点,这可以成为控制while循环的条件之一。

使用特权

评论回复
5
shenmu2012| | 2014-5-15 22:01 | 只看该作者
elecintop 发表于 2014-4-28 23:07
3.链表的查询:遍历链表查找满足特定要求的节点。
链表的查询,需要遍历每一个节点,那么在遍历的过程中同样 ...

很不错的,参考了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1329

帖子

3

粉丝