资源简介 链表+算法综合四班级 姓名1.【202303平湖模拟】① a[slow][1] (1 分)② pre = cur (2 分)③ a[h1][1] = h2 (2 分)④ i//2+1 (2 分)⑤ a[mid][1] = -1 (2 分)2.【202304杭州地区四校联考】(1)2 (1分)(2) ①ch=dic[i][0][0] (2分)②data[tmp[ord(ch)-97]]=i (2分)③p!=-1 (2分)④data[p][1] (2分)(3)B (1分)3.D4.C链表+算法综合四班级 姓名1.【202303平湖模拟】小胡公司组织四人制篮球赛(2人对2人),现已报名 n(n为偶数)人,根据这n人的个人篮球赛成绩降序排序后存于单向链表a中,为使每队实力尽量均衡,将a中第1人和最后一人组队,第 2人和倒数第2人组队,以此类推。例如有6名编号为 T01、T02、T03、T04、T05、T06 的队员报名参赛,按个人篮球赛成绩降序排序后的次序为:T05、T06、T02、T03、T04、T01,经过分组后分组情况如下图所示:具体算法为:(1)找到链表的中点(2)将链表的右半段反转(3)将链表左半段和反转后的右半段合并(4)按顺序输出每组队员编号小胡编写程序实现将这n人进行分组并输出每组队员编号,请在划线处填入合适的代码。#找到原链表的中点def middleNode(head):slow=fast=headwhile a[fast][1] != -1 and a[a[fast][1]][1] != -1:slow=①________ ___fast=a[a[fast][1]][1]return slow#将原链表的右半段反转def reverseList(head):pre=-1 ; cur=headwhile cur!=-1:nextTemp=a[cur][1] ; a[cur][1]=pre②____________ _cur=nextTempreturn pre#将原链表的两段合并def mergeList(h1, h2):while h1!=-1 and h2 !=-1:h1_tmp=a[h1][1] ; h2_tmp=a[h2][1]③_____________ __h1=h1_tmp ; a[h2][1]=h1 ; h2=h2_tmp#输出分组情况def show():head=0 ; i=0 ; print('分组情况:')while head!=-1:if i % 2==0:print('第', ④__________ __, '组:', a[head][0], '和 ', end='')else:print(a[head][0])i+=1head=a[head][1]#读入n人编号,并按个人篮球赛成绩降序排序后依次将编号存入a中并输出a(代码略)mid=middleNode(0)head1=0head2=a[mid][1]⑤____________ __head2=reverseList(head2)mergeList(head1, head2)show()2.【202304杭州地区四校联考】张老师制作了一个python英汉词典用来帮助大家更好的学习,该词典dic收集了python的关键字、常用函数、专业名词及其中文含义。词典中的英文单词无序,且皆为小写。为了方便查询、扩展等,张老师在不改变元素位置情况下,对全部单词按首字母进行了分组,分组信息存储在data中。查询时只要先确定待查找单词的首字母,找到所在分组,然后在该组中依次比对即可。若找到则输出其中文含义,否则输出“找不到”。(1)若dic=[['and', '与'], ['end', '结束'], ['or', '或'], ['else', '否则'], ['not', '非'], ['even', '偶数']],按下列程序代码运行,查找单词else的查找次数为 次。(2)Python程序如下,请在划线处填入合适的代码。from readtxt import dic #dic是一个列表,从另一个文件readtxt.py中生成#它每个元素都有两个数据项,第一项是英文单词,第二项是中文含义#如dic=[['print','打印/输出'],……],所有单词都是小写,且无序data=[] ; ln=len(dic)for i in range(ln):data.append([i,-1])headindex={}for i in range(26):headindex[chr(97+i)]=-1tmp=[-1]*26for i in range(ln):①if headindex[ch]==-1:headindex[ch]=ielse:②tmp[ord(ch)-97]=i# search函数只提供英文单词查询def search(key):key=key.lower() #转换成小写p=headindex[key[0]]while ③ :if dic[p][0]==key:print(key+' 中文含义是:'+dic[p][1])breakelse:p=④else:print('sorry,'+key+' 找不到!')word=input('请输入要查找英文单词:')search(word)(3)使用以下代码替换加框处代码,其功能保持不变的是 (单选,填字母)。A.if p>0: B.if p<0: C.if not p:3.有下列 Python 程序段:a=[[1,3],[1,0],[7,1],[4,5],[1,-1],[6,4]]x=1 ; p=head=2if x==a[p][0]:head=a[p][1]else:while p!=-1:if x==a[p][0]:a[pre][1]=a[p][1]else:pre=pp=a[p][1]运行该段程序后,a[2][1]的值为( )dA.-1 B.0 C.1 D.34.使用 Python 程序在链表a中删除一个数据data,代码如下:import randoma=[[87,1],[93,3],[97,5],[95,2],[80,0],[98,-1]]head=4x=random.randint(0,len(a)-1) #randint(a,b)返回[a,b]区间内的一个随机整数data=①p=q=headwhile q!=-1:if ②if q==head:head=a[q][1]else:a[p][1]=a[q][1]breakelse:③q=a[q][1]则划线处的代码为( )cA.①a[0][x] ②data==a[q][0] ③p=qB.①a[0][x] ②data!=a[q][0] ③p=headC.①a[x][0] ②data==a[q][0] ③p=qD.①a[x][0] ②data!=a[q][0] ③q=head 展开更多...... 收起↑ 资源列表 浙教版新教材(2019)信息技术选考二轮复习系列专题配套练习——链表+算法综合四.doc 浙教版新教材(2019)信息技术选考二轮复习系列专题配套练习——链表+算法综合四答案.doc