请教:2011年3月计算机三级数据库技术笔试真题及答案第1大题第9小题如何解答?
结点,笔试
已帮助 人
【题目描述】
(9)双链表的每个结点包括两个指针域。其中 rlink 指向结点的后继,llink 指向结点的前驱。如果要在 P 所指结点前面插入 q所指的新结点,下面哪一个操作序列是正确的?
A)p↑.rlink↑.llink:=q; p↑.rlink:=q; q↑.llink:=p; q↑.rlink:=p↑.rlink;
B)p↑.1link↑.rlink:=q; p↑.llink:=q; q↑.rlink:=p; q↑.llink:=p↑.llink;
C)q↑.llink:=p:q↑.rlink:=p↑.rlink; p↑.rlink↑.llink:=q; p↑.rlink:=q;
D)q↑.rlink:=p; q↑ .llink:=p↑ .llink; p↑.llink↑.rlink:=q; p↑.llink:=q;
| 【我提交的答案】: |
| 【参考答案与解析】: 正确答案:D |
【我的疑问】(如下,请求专家帮助解答)
请教:2011年3月计算机三级数据库技术笔试真题及答案第1大题第9小题如何解答?
-
先将q下一个结点指向p, p的前一个结点指向q。这个时候再去将p的后继结点的前一个结点指向q,也就是将pp↑.rlink↑.llink:=q。最后将p的下一个指针指向q,p↑.rlink:=qa的错误在于p↑.rlink:=q;p已经指向q了,最后又 q↑.rlink:=p↑.rlink,这个时候p的下一个结点已经是q,变成 q->q q指向自己。b的错误我就不说了。。。连想法都错了d的错误也和b一样。四个选项你要画出来就好理解了。
