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

有关pascal指针的问题双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链表中的一个结点,它的左右结点均非空。现要求删除结点p,则下面语句序列中错误的是(

题目详情
有关pascal指针的问题
双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链表中的一个结点,它的左右结点均非空。现要求删除结点p,则下面语句序列中错误的是( )。
A.p^.rlink^.llink=p^.rlink;
p^.llink^.rlink=p^.llink;dispose(p);
B.p^.llink^.rlink=p^.rlink;
p^.rlink^.llink=p^.llink;dispose(p);
C.p^.rlink^.llink=p^.llink;
p^.rlink^.llink^.rlink=p^.rlink;dispose(p);
D.p^.llink^.rlink=p^.rlink;
p^.llink^.rlink^.llink=p^.llink;dispose(p);
最好解释一下为什么选那个选项
▼优质解答
答案和解析
最基本的指针运用啊,我初赛前10分钟刚刚看得指针都会做这题。。。答案是bcd,教你一个白痴但很有用的方法,rlink就是右指针,llink就是左指针,加个^就是指其所指的地址,你可以把他当做一个数来看。B的意思就是p的左的右赋成p的右,p的右的左赋成p的左,dispose是删除某个地址的令命,即把p所指的地址的空间释放,等于删除p,这样b就是正确的,cd两个自己推,a很明显是错的(p的右的左赋成p的右,明显反了)。