插队

提交数: 975, 通过率: 65.13%, 平均分: 65.44

题目描述:

有n个人,每个人都有自己的编号,他们排成一个队列。现在一个编号为b的人要插到第a人(不是编号为a)后面,求插入后的队列顺序。

输入格式:

第一行输入n,第二行输入n个数,表示原先的队伍顺序。

第三行输入两个数a,b。

输出格式:

输出一行,为插入后的队列顺序。

样例输入:

5
1 2 3 4 5
2 7

样例输出:

1 2 7 3 4 5

提示:

n<=200

n = int(input())
d = list(map(int, input().split()))
a, b = map(int, input().split())

-------------------------------------------------------------------------------------------------

下面的程序用链表实现,请完善程序:

n = int(input())
d = list(map(int, input().split()))
a, b = map(int, input().split())

L = [ ]   # L为链表
for i in range( n ):
    L.append( [ d[i], ________ ] )   #填空1
L[-1][1] = ________     #填空2
#print( L )

head = 0
cnt = 1
p = head
while cnt < a :
    cnt += 1
    p = L[p][1]
L.append( _____________ )  #填空3
L[p][1] = _____________    #填空4

#print( L )
p = head
while ____________:   #填空5
    print( L[p][0] , end =' ')
    p = L[p][1]
时间限制: 1000ms
空间限制: 256MB

来源: 原创