请教: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一样。四个选项你要画出来就好理解了。