问题 单项选择题

双链表的每个结点包括两个指针域。其中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↑.1link:=p↑.1link;p↑.1link↑.rlink:=q;p↑.llink:=q;

答案

参考答案:C

解析: 如果在链表的每个结点中包括两个指针域,其中rlink指向结点的后继,llink指向结点的前驱,就可以方便地进行向后和向前两个方向的查找。这样的链表称作双链表。在双链表中,如果要在P所指结点后插入q所指的新结点,只需修改P所指结点的rlink字段和原后继的llink字段,并置q所指结点的llink和rlink值。即q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.rlink:=q;p↑.rlink:=q。

单项选择题
问答题 简答题