本文整理汇总了Python中Nodo.Nodo.en_lista方法的典型用法代码示例。如果您正苦于以下问题:Python Nodo.en_lista方法的具体用法?Python Nodo.en_lista怎么用?Python Nodo.en_lista使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nodo.Nodo
的用法示例。
在下文中一共展示了Nodo.en_lista方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: buscar_solucion_bfs
# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import en_lista [as 别名]
def buscar_solucion_bfs(conexiones, estado_inicial, solucion):
solucionado = False
nodos_visitados = []
nodos_frontera = []
nodoInicial = Nodo(estado_inicial)
nodos_frontera.append(nodoInicial)
while (not solucionado) and (len(nodos_frontera) != 0):
nodo = nodos_frontera[0]
# extraer nodo y anadirlo a visitados
nodos_visitados.append(nodos_frontera.pop(0))
if (nodo.get_datos() == solucion):
# solucion encontrada
solucionado = True
return nodo
else:
# expandir nodos hijos (ciudades con conexion)
dato_nodo = nodo.get_datos()
lista_hijos = []
for un_hijo in conexiones[dato_nodo]:
hijo = Nodo(un_hijo)
lista_hijos.append(hijo)
if (not hijo.en_lista(nodos_visitados)) and (not hijo.en_lista(nodos_frontera)):
nodos_frontera.append(hijo)
nodo.set_hijos(lista_hijos)
示例2: buscar_solucion_BFS
# 需要导入模块: from Nodo import Nodo [as 别名]
# 或者: from Nodo.Nodo import en_lista [as 别名]
def buscar_solucion_BFS(estado_inicial, solucion):
solucionado = False
nodos_visitados = []
nodos_frontera = []
nodoInicial = Nodo(estado_inicial)
nodos_frontera.append(nodoInicial)
while (not solucionado) and (len(nodos_frontera) != 0):
nodo = nodos_frontera.pop(0)
# extraer nodo y anadirlo a visitados
nodos_visitados.append(nodo)
if nodo.get_datos() == solucion:
# solucion encontrada
solucionado = True
return nodo
else:
# expandir nodos hijos
dato_nodo = nodo.get_datos()
# operador Izquierdo
hijo = [dato_nodo[1], dato_nodo[0], dato_nodo[2], dato_nodo[3]]
hijo_izquierdo = Nodo(hijo)
if not hijo_izquierdo.en_lista(nodos_visitados) and not hijo_izquierdo.en_lista(nodos_frontera):
nodos_frontera.append(hijo_izquierdo)
# operador Central
hijo = [dato_nodo[0], dato_nodo[2], dato_nodo[1], dato_nodo[3]]
hijo_central = Nodo(hijo)
if not hijo_central.en_lista(nodos_visitados) and not hijo_central.en_lista(nodos_frontera):
nodos_frontera.append(hijo_central)
# operador Derecho
hijo = [dato_nodo[0], dato_nodo[1], dato_nodo[3], dato_nodo[2]]
hijo_derecho = Nodo(hijo)
if not hijo_derecho.en_lista(nodos_visitados) and not hijo_derecho.en_lista(nodos_frontera):
nodos_frontera.append(hijo_derecho)
nodo.set_hijos([hijo_izquierdo, hijo_central, hijo_derecho])