一棵查找二叉树,其结点A、B、C、D、E、F依次存放在一个起始地址为n(假定地址以字节为单位顺序编号)的连续区域中,每个结点占4个字节:前两个字节存放结点值,后两个字节依次放左指针、右指针。
若该查找二叉树的根结点为E,则它的一种可能的前序为(1),相应的层次遍历为(2)。
在以上两种遍历情况下,结点C的左指针Lc的存放地址为(3),Lc的内容为(4)。结点A的右指针Ra的内容为(5)。
(1)A.EAFCBD B.EFACDB C.EABCFD D.EACBDF
(2)A.EAFCBD B.EFACDB C.EABCFD D.EACBDF
(3)A.n+4 B.n+10 C.n+12 D.n+13
(4)A.n+9 B.n+8 C.n+12 D.n+16
(5)A.n+4 B.n+8 C.n+12 D.n+16 ?
这道题我不是很明白,谁能给我个详细的解释。
若该查找二叉树的根结点为E,则它的一种可能的前序为(1),相应的层次遍历为(2)。
在以上两种遍历情况下,结点C的左指针Lc的存放地址为(3),Lc的内容为(4)。结点A的右指针Ra的内容为(5)。
(1)A.EAFCBD B.EFACDB C.EABCFD D.EACBDF
(2)A.EAFCBD B.EFACDB C.EABCFD D.EACBDF
(3)A.n+4 B.n+10 C.n+12 D.n+13
(4)A.n+9 B.n+8 C.n+12 D.n+16
(5)A.n+4 B.n+8 C.n+12 D.n+16 ?
这道题我不是很明白,谁能给我个详细的解释。
但是它所谓的依次存放是怎样的“依次”,如果是按A、B、C、D、E、F
那么(3)答案应该是n+9,没有一个对的。
(3)答案肯定是C,这个不要说了n+8+2
(4)答案也是C,只有选项C和D是节点的开始地址,D指的是E节点,显然不对,所以是C。
(1)答案是B,由于C的左子树是D,所以先根序列里肯定有CD子序列,而只有B满足这个条件。
(2)由(1)得到,并考虑A有右子树,答案是B
(5)自然是B喽,树如下
E
/ \
F A
\
C
/ \
D B
E
/ \
A F
\
C
/ \
B D
画出了整个树,第二题更好做,直接看出:选A。
第三题:B 第四题:A 第五题:B解释:
C节点的起始地址是n+8,所以LC的地址是n+10;C节点的左孩子是B,所以LC的内容就是B的起始地址:n+4;A的右孩子是C,所以RA的内容是C的起始地址:n+8。做完。注意:
楼主把第四题的A选项抄错了,害得我以为题目出错了,最后上网翻了半天翻到原来是01年的高程试题,楼主刚好把正确选项搞错了,faint。
不过codewarrior这么热心,我加多五十分给你补偿吧! ^o^