Professional Documents
Culture Documents
Thuat Toan A
Thuat Toan A
gu={
"A":0,
"B":0,
"C":0,
"D":0,
"E":0,
"F":0,
"G":0,
"H":0,
"I":0,
"J":0,
}
wf.write('%-10s%-20s%-10s%-10s%-10s%-10s%-20s\n' % ("TTD",
"TTK","K(u,v)","h(v)","g(v)","f(v)" ,"DSL"))
while queueSort:
m =queueSort.pop(0)
KE = []
arr=[]
for neighbour in range(n):
if graph[m[0]][neighbour] != 0 and m[0]!=neighbour:
k = graph[m[0]][neighbour]
h= graph[neighbour][neighbour]
gv = k + gu[chr(m[0]+65)]
gu[chr(neighbour+65)] = gv
f= gv+h
queueSort.append([neighbour,f])
queueSort.sort(key=lambda x: x[1])
KE.append([neighbour,k,h,gv,f])
arr.append(chr(neighbour+65)+"-"+str(f))
# in đỉnh xét
wf.write("\n%-10s" % (chr(int(m[0])+65)+"-"+str(m[1])))
if m[0] == ord(kt[0]) - 65 :
wf.write("%-20s" % "TTKT\n")
while dinh[0]!=bd[0]:
for item in DSK:
if dinh in item[1]:
dinh=item[0]
DuongDi.append(dinh)
DuongDi.reverse()
wf.write("\nĐường đi từ " + bd[0] + " đến " + kt[0] + " là: ")
for i in range(len(DuongDi)-1):
wf.write(DuongDi[i][0]+"->")
wf.write(DuongDi[len(DuongDi)-1][0]+", Độ dài: "+str(DuongDi[len(DuongDi)-
1].split('-')[1]))
wf.close()
return False
else:
# in danh sách kề
index=0
for (item) in KE:
if index:
wf.write("%-10s%-20s%-10s%-10s%-10s%-10s\n"%
("",chr(item[0]+65),str(item[1]),str(item[2]),str(item[3]),str(item[4])))
else:
# in danh sách L
cotDSL=""
for item1 in queueSort:
cotDSL+=(chr(int(item1[0])+65)+"-"+str(item1[1])+" ")
wf.write("%-20s%-10s%-10s%-10s%-10s%-20s\n"%
(chr(item[0]+65),str(item[1]),str(item[2]),str(item[3]),str(item[4]),cotDSL))
index=1
return True
# Driver Code
wf = open('output.txt', 'w',encoding = 'utf-8')
if bfs(graph, bd):
wf.write("\nKhông có đường đi từ "+ bd[0] +" đến "+kt[0])
wf.close()