最近做算法题的时候,链表多一些,凑着这个机会总结下链表的操作。
链表的结点中有指针域和data域,指针域负责存储下一个结点的地址,指向下一个结点的方向标。data域存储链表的内容。
1、链表的插入

解析:p指针指向的结点和p->next指针指向的结点之间插入一个S结点。
首先S结点的指针指向p的下一个结点。S->next = p->next,也就是图中的①,接着是②,断开p和p->next结点之间的联系,让p结点指向S的地址,p->next=S。
注意:S->next = p->next p->next=S 的顺序不能调换。原因如下:
如果p->next = S,就先把③执行了,接下来S->next = p->next,其实就编程了S->next = S了。把原来的地址覆盖掉了。所以顺序一定不能错。
2、链表的删除

q->next=r ,p->next=q,现在要把q删除掉,p需要知道r的指针地址,p->next=q->next。
这样应该就可以了。
主要涉及链表算法中用到的多一些。
本文介绍了链表的基本概念,包括结点的data域和指针域,并详细阐述了链表插入和删除的操作步骤。在链表插入时,强调了S结点先指向p的下一个结点,再更新p的指针,以避免地址覆盖。链表删除时,通过p直接指向q的下一个结点实现。这些是链表算法中常用的操作。

2246

被折叠的 条评论
为什么被折叠?



