- 1、本文档共110页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
专题18基于数据结构的算法实现
学习目标1.掌握队列中元素入队和出队的条件;
2.掌握链表的构建方法.
队列是线性结构的一种,因此也可以用链式结构的方式来实现。并且链式结构的队列,由于节点空间都是在入队的时候动态申请的,因此在计算机内存空间足够的情况下,一般不需要考虑队满的情况,也就不存在溢出的情况,所以不需要使用循环链式队列来处理假溢出的情况。链式队列在链表的链尾插入元素,然后让队尾指针指向链尾元素。链式队列的出队,就是将链表的首元节点从链表中删去,让其后继节点成为首元节点,然后让队头指针指向该节点。
(2024年1月浙江省选考)某项活动有n个单位(编号1到n)参加,需将员工分成若干个小组,每个小组的人数上限为m,小组编号按新建次序从1开始编号。分组时,首先按单位编号次序依次在各单位内部分分组,每m人分配到一个新建小组中,不足m人的剩余员工暂不分配;然后按剩余员工人数由大到小的顺序,依次为各单位剩余员工分配小组。
若某单位剩余员工人数为k,则分配方法为:在已建的小组中查找空位数(该小组还可容纳的人数)大于或等于k的小组,如果找到的小组有多个,则选择空位数最少的小组,将此k人分配到该小组中;如果没有找到,则新建一个小组,将此k人分配到该小组中。
设n为5,m为20,各单位员工人数及单位内部的分组过程如图a所示,各单位剩余员工的分组过程如图b所示。
编写程序:给定各单位编号及员工人数,根据上述方法进行分组处理,按单位编号次序输出各单位所分配的分组编号。请回答下列问题:
(1)由题意可知,若仅将图a中1号单位的员工人数修改为25,然后对图中5个单位重新分组,则1号单位所分配的分组编号为________。
(2)定义如下bubble_sort(lst)函数,参数lst的每个元素由单位编号和剩余员工人数2个数据项组成。函数的功能是根据每个单位的剩余员工人数,对lst进行降序排序。
defbubble_sort(lst):
n=len(lst)
foriinrange(0,n-1):
return
调用该函数,若lst为[[1,0],[2,0],[3,18],[4,0],[5,19],[6,17]],请回答①和②两个问题。
①虚线框中的程序段第1次执行后,关于lst中的剩余员工人数,下列说法正确的是________(单选,填字母)。
A.lst[0][1]数值最小 B.lst[0][1]数值最大
C.lst[5][1]数值最小 D.lst[5][1]数值最大
②虚线框中的程序段执行的次数为________。
(3)实现分组功能的部分Python程序如下,程序中用到的列表函数与方法如图c所示,请在程序中划线处填入合适的代码。
函数与方法
功能
w.append(x)
在列表w末尾添加元素x
x=w.pop()
将列表w末尾元素赋值给x,并将其从w中删除
图c
defgroup(data,m):
n=len(data)
a=[]
foriinrange(n+1):
a.append([])#a[i]初始化为空列表,存放编号为i的单位所分配的分组编号
gnum=0
foriinrange(n):#各单位内部分组
whiledata[i][1]=m:
gnum+=1
k=data[i][0]
a[k].append(gnum)
①________
bubble_sort(data)#根据每个单位的剩余员工人数,对data进行降序排序
b=[]
foriinrange(m):
b.append([])
i=0
whileinanddata[i][1]!=0:#对剩余员工分组
②________
whilejmandlen(b[j])==0:
j+=1
ifjm:
v=b[j].pop()
else:
gnum+=1
v=gnum
a[data[i][0]].append(v)
③________
i+=1
#输出各单位的分组编号,代码略
读取小组人数上限存入m;读取1至n号单位的数据,依次存入列表data的data[0]至data[n-1]中。data[i]包含2个数据项,data[i][0],
您可能关注的文档
- 专题13 简单算法程序实现 学案(含解析)2025届高中信息技术.DOCX
- 专题14 树 学案(含解析)2025届高中信息技术.DOCX
- 专题15 队 列 学案(含解析)2025届高中信息技术.DOCX
- 专题16 栈 学案(含解析)2025届高中信息技术.DOCX
- 专题八 系统分析 学案(含解析)2025届高中通用技术.DOCX
- 专题二 人机关系 学案(含解析)2025届高中通用技术.DOCX
- 专题九 控制分析 学案(含解析)2025届高中通用技术.DOCX
- 专题六 构件的受力形式分析 学案(含解析)2025届高中通用技术.DOCX
- 专题七 流程分析与设计 学案(含解析)2025届高中通用技术.DOCX
- 专题三 方案筛选 学案(含解析)2025届高中通用技术.DOCX
最近下载
- 2025年长沙民政职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 数字医疗项目可行性报告.docx
- 110kV变电站预试定检综合项目施工专项方案.doc VIP
- 2025年21年一消防工程师继续教育题 .pdf VIP
- 2024年南昌工学院单招职业技能测试题库word版.docx VIP
- 非煤矿山露天采石场主要风险分级表.pdf VIP
- Unit 2 Making a Difference Understanding ideas The Well that changed the world 课件-2023-2024学年高中英语外研版(2019)必修第三册.pptx
- 防治责任范围矢量化操作流程.docx
- 2025学年湖南省怀化市重点中学高三5月模拟(一模)考试数学试题 .pdf VIP
- 湘少版-英语-四下-Unit1_单元测试卷.pdf
文档评论(0)