请教数据结构的一道题! 删除双向链表中间某个节点,需要修改个()指针域? A1 B2 C3 D4

 我来答
博学小赵爱生活
高能答主

2020-05-26 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:456 获赞数:111875

向TA提问 私信TA
展开全部

删除双向链表中间某个节点,需要修改2个指针域。双向链表具备两个方向的指向,无非就是每个结点成了两个指针。有两个指针域分别指向前一个结点和后一个结点,还有一部分用来保存结点数据,初始化结点时需要将两个指针都指向空。

增加结点时,需要将最后一个结点的next指针指向新结点,然后将新结点的prev指向最后一个结点。

删除结点时需要将待删除结点的前一个结点的next指向待删除结点的后一个结点,然后,把后者的prev指针指向前者。

插入结点就是将新结点的前一个结点的next指针指向指向新结点,然后把新结点的next指针指向前一个结点原来后面的那个结点,然后把后面的结点的prev指针指向新结点,把新结点的Prev指针指向前一个结点。

扩展资料:

双向链表的 C 语言实现代码:

line*initline(line*head){

head=(1ine*)malloc(sizeof(1ine));//创建链表第一个结点(首元结点)

head->prior=NULL;

head->next=NULL;

head->data=1;

line*list=head;

for(int i=2;i<=3;i++){

∥创建并初始化一个新结点

1ine*body=(line*)malloc(sizeof(line));

body->prior=NULL;

body->next=NULL;

body->data=i;

1ist->next=body;//直接前趋结点的next指针指向新结点

body->prior=list;/新结点指向直接前趋结点

list=list->next;

return head;



屋石
推荐于2018-04-11 · TA获得超过5354个赞
知道大有可为答主
回答量:1909
采纳率:86%
帮助的人:909万
展开全部
B 2个,是双向的,要修改一结点的前驱,另一结点的后继即可啊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式