问题标题:
【问题之数据结构链表双向链表中有两个指针域,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的后继节点,这个有意义。
点击显示
其它推荐
热门其它推荐