| 甲 | 乙 | 丙 | 丁 | 戊 | 己 |
甲 | 0 | 1 | 1 | 1 | 0 | 0 |
乙 | 1 | 0 | 1 | 0 | 1 | 1 |
丙 | 1 | 1 | 0 | 1 | 0 | 0 |
丁 | 1 | 0 | 1 | 0 | 1 | 1 |
戊 | 0 | 1 | 0 | 1 | 0 | 0 |
己 | 0 | 1 | 0 | 1 | 0 | 0 |
王老师设计了一个用来求两个陌生人建立联系所需最少介绍人的VB程序,程序运行时,点击“生成矩阵”按钮Command1,随机产生一个关系矩阵,并在列表框List1中显示。在文本框Text1和Text2中输入两个陌生人的编号,点击“建立联系”按钮Command2,在Labell中输出需要介绍人的最少个数。VB程序运行界面如图所示。

对陌生人pl和p2建立联系的方法:
①pl所在行开始,将其认识的人依次添加到联系人数组b中。
②若数组b中未出现p2,依次搜索下一位联系人所在行,将新出现的认识人添加到联系人数组b中。
③在搜索过程中同时记录搜索步数,数组b内全部搜索完毕,若p2还是未出现,则视为无法建立联系,反之输出介绍人的个数。
程序代码如下:
Const n=8
Dim a(1 To n*n) As Integer
Private Sub Command1_Click()
Dim s As String
List1.Clear
For i=1 To n
For j=i To nIf j=i Then
a((i-1)*n+j)=0
Else
a((i-1)*n+j) = Int(Rnd * 2)
__________
End If
Next j
Next i
For i=1 To n
s=""For j=1 To n
s=s+Str(((i-1)*n+j))
Next j
List1.AddItem s
Next i
End SubPrivate Sub Command2_Click()
Dim b(1To n) As Integer
Dim ren(1To n) As Integer '记录建立联系的步数
Dim find(1To n) As Boolean '记录某人是否被添加到联系人数组中
Dim p1 As Integer,p2 As Integer,cur As Integer,k As Integer,
q As Integer
p1=Val(Text1.xt)
p2=Val(Text2.Text)
cur=p1:k=1:q=0
find(cur)=True
Do While find(p)=False
For i=1 To nIf a( (cur-1)*n+i)=1 And find(i)=False Then
b(k)=i:k=k+1
find(i)=True
_____________
End If
Next i
q=q+1
If q=k Then Exit Do Else_______________
Loop
If find(p2)=True Then
Label1.Caption="需要"+Str(ren(p2)-1)+"个介绍人"Else
Label1.Caption="无法建立联系"End If
End Sub请回答以下问题:
(1)如图所示的人际关系,要建立2号和5号之间的联系需要的介绍人数最少为_____。
(2)请在划线处填入合适的代码。

同类型试题

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


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

