定义如下proc(n, s, pre)函数,该函数的返回值是列表v, v[i]代表从开始到组件i完成组装所需的最短时间。请在划线处填入合适的代码。 def proc(n, s, pre):
head=tail=0
que=[0]*n
for I in range(n):
if pre[i]==0:
que[tail]=i
tail+=1
while :
x=que[head]
head+=1
for i in range(n):
if s[x][i]==1:
pre[i]-=1
if pre[i]==0:
que[tail]=i
tail+=1
v[i]=max(v[i], )
return v
"""
组装编号0~n-1的单个组件所需时间存入t列表,组件前置关系存入a列表,如第15题图a所需时间t=[2, 5, 2, 4, 3, 5];a=[[0, 2], [2, 3], [1, 3], [3, 5], [3, 4]]
"""
n=len(t)
print(’编号为0~’+str(n-1)+’的组件组装所需单位时间分别为:’, t)
v=t[:]
pre, s=cal(a, n)
v=proc(n, s, pre)
data=[0]*n
result=[i for I in range(n)] #创建列表result=[0,1,2,……,n-1]
for i in range(n):
data[i]=v[i]-t[i] #data[i]表示组件i开始安装时间
for i in range(n-1): #按组件开始安装时间升序排序,开始安装时间相同时按组件序号升序
for j in range(n-1-i):
if data[result[j]]>data[result[j+1]]:
print(‘组件组装顺序:’, result, ‘, 安装完成所需最短时间:’, max(v))