问题
单项选择题
双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱。如果要在p所指结点后插入q所指的新结点,下列哪一个操作序列是正确的
A.p↑.rlink↑.llink:=q; P↑.rlink:=q;q↑.llink:=p; q↑.rlink:=p↑.rlink;
B.p↑.llink↑.rlink:=q; p↑.l1ink:=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;
答案
参考答案:C
解析: 如果在链表的每个结点中包括两个指针域,其中rlink指向结点的后继,llink指向结点的前驱,就可以方便地进行向后和向前两个个向的查找。这样的链表称作双链表。在双链表中,如果要在P所指结点后插入q所指的新结点,只需修改P所指结点的rlink字段和原前驱的llink字段,并置q所指结点的llink和rlink值。即:
q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.rlink:=q;↑.rlink:=q。