题目
已知表头元素为 c 的单链表在内存中的存储状态如下表所示。
现将 f 存放于 1014H 处并插入到单链表中,若 f 在逻辑上位于 a 和 e 之间,则 a, e, d 的“链接地址”依次是
A.1010H, 1014H, 1004H
B.1010H, 1004H, NULL
C.1014H, 1010H, 1004H
D.1014H, 1004H, NULL
解答
参考答案:D.
这道题的逻辑,简单来说,就是地址存放你当前元素的地址,链接地址是指向当前元素的下一个元素的地址。
因此,我们来看没插入f之前时,链表的顺序,由于头元素是c(地址1008H),由C开始,C的链接地址是1000H,也就是指向元素a(地址1000H),之后a的链接地址是1010H,也就是指向元素e。。。
按照上面这个思路遍历,我们可以得到链表的遍历顺序c(1008H)->a(1000H)->e(1010H)->b(1004H)->d(100CH)->null。
由于f逻辑上位于a和e之间,因此也就是说将f插入到ae之间,因此只需要修改a的链接地址(也就是指向下一个元素的地址)为f的地址(1014H),然后将f的链接地址修改为e的地址。
链表插入不影响其他元素,所以其他元素链接地址不变。
因此,a,e,d的链接地址分别为,1014H,1004H,null。
中枪,我脑子里全是错误回答