Ascii 值转换
AA=ord('a') # crd() 函数就是用来返回单个字符的 ascii 值( 0-255 )
BB=chr(65) # chr() 函数是输入一个整数 [0 , 255] 返回其对应的 ascii 符号
>>>print(AA)
97
>>>print(BB)
'A'
BFS 基本例题
graph={'A':['B','C'],
'B':['A','C'],
'C':['B','A'],
'D':['B','C','E'],
'E':['D','C','B'],
'F':['D']}
def BFS(graph,s):
queue=[]
queue.append(s)
seen=[]
seen.append(s)
while len(queue)>0:
vertex=queue.pop(0)
nodes=graph[vertex]
for i in nodes:
if i not in seen:
queue.append(i)
seen.append(i)
print(vertex)
BFS(graph,'E')
>>>
E
D
C
B
A
DFS 基本例题
graph={'A':['B','C'],
'B':['A','C','D'],
'C':['B','A','D','E'],
'D':['B','C','E','F'],
'E':['D','C'],
'F':['D']}
def DFS(graph,s):
stack=[]
stack.append(s)
seen=[]
seen.append(s)
while len(stack)>0:
vertex=stack.pop()
nodes=graph[vertex]
for i in nodes:
if i not in seen:
stack.append(i)
seen.append(i)
print(vertex)
DFS(graph,'E')
>>>
E
C
A
B
D
F
BFS 最短路径问题
graph={'A':['B','C'],
'B':['A','C','D'],
'C':['B','A','D'],
'D':['B','C','E','F'],
'E':['D','C'],
'F':['D']}
def BFS(graph,s):
queue=[]
queue.append(s)
seen=[]
seen.append(s)
parent={s:None}
while len(queue)>0:
vertex=queue.pop(0)
nodes=graph[vertex]
for w in nodes:
if w not in seen:
queue.append(w)
seen.append(w)
parent[w]=vertex
#print(vertex)
return parent
parent=BFS(graph,'E') # E 终点
''' #外汇跟单gendan5.com 输出从 B 到 E 的最短路径
v='B'
while v!=None:
print(v)
v=parent[v]
'''
v='B' # B 起点
way=[]
while v!=None:
way.append(v)
v=parent[v]
print(way,len(way))