已知P结点是某双向链表的中间结点,从下列提供的答案中选择合适的语句序列

a.在P结点后插入S结点的语句序列是b.在P结点前插入S结点的语句序列是c.删除p结点的直接后继结点的语句序列是d.删除p结点的直接前驱结点的语句序列是e.删除p结点的语... a.在P结点后插入S结点的语句序列是
b.在P结点前插入S结点的语句序列是
c.删除p结点的直接后继结点的语句序列是
d.删除p结点的直接前驱结点的语句序列是
e.删除p结点的语句序列是
1.P->next=P->next->next;
2.P->priou=P->priou->priou;
3.P->next=S;
4.P->priou=S;
5.S->next=P;
6.S->priou=P;
7.S->next=P->next;
8.S->priou=P->priou;
9.P->priou->next=P->next;
10.P->priou->next=P;
11.P->next->priou=P;
12.P->next->priou=S;
13.P->priou->next=S;
14.P->next->priou=P->priou;
15.Q=p->next;
16.Q=P->priou;
17.free(P);
18.free(Q);
能不能解释一下
展开
 我来答
ggdmdf
推荐于2017-09-06 · TA获得超过1520个赞
知道小有建树答主
回答量:1024
采纳率:0%
帮助的人:1220万
展开全部
答案不是唯一的,部分句子可以互换.

a.在P结点后插入S结点的语句序列是
12:P->next->priou=S; //p的下一结点的前一结点修改为S
7:S->next=P->next; //S的下一结点修改为p的下一结点,如此,12和7将p的下一结点与s连结了.
3:P->next=S; // p的下一结点修改为S
6:S->priou=P; //S的上一结点修改为p,如此,p和S连接起来了
//注:前提是p不是最后一个结点,或者链表本身是循环链表

b.在P结点前插入S结点的语句序列是
13:P->priou->next=S; //p的前一结点的后一结点修改为S
8:S->priou=P->priou; //s的前一结点修改为p的前一结点,如此2句,将p的前一结点和S连接了
5:S->next=P; // S的下一结点修改为p
4:P->priou=S; // p的上一结点修改为s,如此也将p和S连接
// 注:p不是表头,或者链表本身是循环链表

c.删除p结点的直接后继结点的语句序列是
15:Q=p->next; //Q指向p的下一结点(即直接后继结点)
1:P->next=P->next->next; //p的下一结点修改为Q的下一结点
11:P->next->priou=P; //p的下一结点(此时为Q的下一结点)的前一结点修改为p,如此将Q断开了
18:free(Q); // 释放Q即可

d.删除p结点的直接前驱结点的语句序列是
16:Q=P->priou; //Q指向p的直接前驱结点
2:P->priou=P->priou->priou; //p的直接前驱修改为Q的直接前驱
10:P->priou->next=P; //p的直接前驱的下一结点修改为p,如此时Q断开并提出
18:free(Q); // 释放Q

e.删除p结点的语句序列是
9:P->priou->next=P->next; //p的直接前驱的下一结点修改为p的直接后继
14:P->next->priou=P->priou; //p的直接后续的上一结点修改为p的直接前驱,如此将p提出
17:free(P); //释放p

以上均假设所用到的结点是有效的.
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式