早教吧 育儿知识 作业答案 考试题库 百科 知识分享

问题之数据结构链表双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是()(链中结点数大于2,p不是第一

题目详情
问题之数据结构链表
双向链表中有两个指针域,llink 和rlink 分别指向前趋及后继,设p 指向链表中的一个结
点,现要求删去p 所指结点,则正确的删除是( )(链中结点数大于2,p 不是第一个结点)
A.p^.llink^.rlink:=p^.llink; p^.llink^.rlink:=p^.rlink; dispose(p);
B.dispose(p); p^.llink^.rlink:=p^.llink; p^.llink^,rlink:=p^.rlink;
C.p^.llink^.rlink:=p^.llink; dispose(p); p^.llink^.rlink:=p^.rlink;
D.以上A,B,C 都不对。 【南京理工大学 1997 一、1(2 分)】
答案是D,但A为什么就错了呢?
▼优质解答
答案和解析
A选项 p^.llink^.rlink:=p^.llink; p^.llink^.rlink:=p^.rlink ,都是给p^.llink^.rlink赋值,第一个赋值是让p的前驱节点的rlink指向p的前去节点,也就是指向了自身,这个没有任何意义。第二个赋值是让p的前驱接点的rlink指向p的后继节点,这个有意义。