信息技术来源:浙江七校2026年普通高等学校招生全国统一考试模拟考试
第 11 题
答案与解析
本题解析
参考答案
C
程序分析
def move(p, m):
c = lst[p][1]
for i in range(m):
t = lst[c][1]
lst[c][1] = lst[t][1]
(1)
(2)lst[k][0]保存下标为k的节点的数据,lst[k][1]保存其后继节点的下标,-1表示没有后继。图a中从头指针h=1出发,节点下标顺序为1→3→2→0→5→4;move(3,2)要把节点3之后的2、0、5逆序为5、0、2。
c=lst[p][1]使c指向待逆序段的第一个节点,循环中c本身不改变。每轮t=lst[c][1]取得节点c当前后继的下标,再令lst[c][1]=lst[t][1],使节点c跳过节点t,连接到t原来的后继,从而将节点t从原位置摘下。两处空缺需要完成摘下后的重新链接。
填空分析
(1)
为逐步逆序,应把摘下的节点t插到节点p之后、已处理部分之前。此时lst[p][1]仍保存节点p原后继的下标,先用lst[t][1] = lst[p][1]使节点t连接这个原后继,故填②。若此时先更新lst[p][1]为t,再用它设置t的后继,就会让t指向自身。
(2)
节点t已经连接到节点p的原后继,接着应让节点p连接节点t,填lst[p][1] = t,即①。两步完成后,每轮都把c后面的一个节点移到p之后。
本题p=3、c=2:第一轮摘下节点0,局部链接由3→2→0→5→4变为3→0→2→5→4;第二轮摘下节点5,变为3→5→0→2→4,与图b一致。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_zhejiangqixiao_q011
