学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
编写一个Python程序对学校所有空教室进行管理,当申请教室时,将分配一个空教室,使用结束后归还教室,若已无空教室则申请失败。
现在模拟这一过程。初始有n个空教室,输入请求,每个请求包括请求类型(申请或归还)和请求人。程序输出对于每次请求的处理结果。例,当前有2个空教室,输入输出如图a所示。

(1)以3个空教室为例,对于如图b所示的输入数据,请求失败的人数是______
(2)请修改程序加框处的错误______
(3)请完成划线处的填空。

n=10#以初始有10个空教室为例

top=n; stack=[i for i in range(n+1)]       #定义栈,存储空教室编号

head=-1; node=[[i,-1,-1]for i in range(n+1)]       #定义链表节点,存储已用教室

def apply(name):                    #申请,从栈中弹出空教室添加至链表,并将请求人作为链表节点的内容

global top, head             #声明top和head为函数外部的全局变量,下同

if top==0: return-1

node[stack[top]][1]=name

node[stack[top]][2]=head

_______

top-=1

return head

def back(name):                    #归还,在链表中找到请求人所在的节点,删除后压入栈中

global top, head

p=head

if node[p][1]==name:

top+=1; stack[top]=head

head=node[head][2]

return stack[top]

while !=name and node[p][2]!=-1:

p=node[p][2]

if node[p][2]==-1: return-1

top+=1; stack[top]=node[p][2]

node[p][2]=node[node[p][2]][2]

return_______

s=input("请输入请求:")

while s!="-1":

#下面语句对输入进行分割后存入request

#其中request[0]表示请求类型(申请或归还),request[1]表示请求人

request=list(map(str,s.split(",")))

if request[0]=="申请":

c=apply(request[1])

if_______:

print("教室已满,申请失败!")

else:

print(request[1],"已申请",node[c][0],"号教室")

elif request[0]=="归还":

c=back(request[1])

if c!=-1: print(request[1],"已归还",node[c][0],"号教室")

s=input("请输入请求:")

编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交