在一个单链表中,若删除p所指结点的后续结点,则执行的语句系列是什么?

 我来答
娱乐小八卦啊a
高粉答主

2020-05-12 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117857

向TA提问 私信TA
展开全部

让p的下一个结点指向下一个的结点的下一个结点,然后free掉(p->next)。在一个单链表中,若要删除p结点的后续结点,只要将p的指针域指向p的后继的后继即可,即p↑.next=p↑.next↑.next。

单链表第i个数据删除结点的算法思路:

1、声明一结点p指向链表第一个结点,初始化j从1开始;

2、当j<i时,就遍历链表,让p的指针向后移动,不断指向下一结点,j累加1;

3、若到链表末尾p为空,则说明第i个元素不存在;

4、否则查找成功,将欲删除的结点p->next赋值给q;

5、单链表的删除标准语句p->next=q->next;

6、将q结点中的数据赋值给e,作为返回;

7、释放q结点;

8、返回成功。

扩展资料

单链表的建立有头插法、尾插法两种方法。

1、头插法

单链表是用户不断申请存储单元和改变链接关系而得到的一种特殊数据结构,将链表的左边称为链头,右边称为链尾。头插法建单链表是将链表右端看成固定的,链表不断向左延伸而得到的。头插法最先得到的是尾结点。

由于链表的长度是随机的,故用一个while循环来控制链表中结点个数。假设每个结点的值都大于O,则循环条件为输入的值大于o。

申请存储空间可使用malloc()函数实现,需设立一申请单元指针,但malloc()函数得到的指针并不是指向结构体的指针,需使用强制类型转换,将其转换成结构体型指针。刚开始时,链表还没建立,是一空链表,head指针为NULL。

链表建立的过程是申请空间、得到数据、建立链接的循环处理过程。

2、尾插法

若将链表的左端固定,链表不断向右延伸,这种建立链表的方法称为尾插法。尾插法建立链表时,头指针固定不动,故必须设立一个搜索指针,向链表右边延伸,则整个算法中应设立三个链表指针,即头指针head、搜索指针p2、申请单元指针pl。尾插法最先得到的是头结点。




iorijj
推荐于2017-07-31 · TA获得超过443个赞
知道小有建树答主
回答量:457
采纳率:66%
帮助的人:151万
展开全部
//保存p所指节点的后续节点
Node *tmp = p->next;
//当tmp为不为空时才进行删除操作,否则不需要进行
if(tmp != NULL)
{
    //将p与它后续节点的后续节点连接,这样才不至于断链
    p->next = tmp->next;
    //之后就可以删除tmp并置空了
    delete tmp;
    tmp = NULL;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友abaaa74
2013-11-17 · TA获得超过495个赞
知道答主
回答量:71
采纳率:0%
帮助的人:60.1万
展开全部
p - > next = p - > next - next

p->next指向p指针的后继结点,p->next->next指向后继结点的后继结点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式