Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def numVertices(Lista):
- n = 0
- a = []
- for v in Lista:
- if v[0] not in a:
- a.append(v[0])
- if v[1] not in a:
- a.append(v[1])
- return len(a)
- def Hamiltoniano(Lista, principio):
- n = numVertices(Lista)
- print(n)
- recorrido = [principio]
- HamiltonianoInm(Lista, recorrido, n)
- def HamiltonianoInm(Lista,recorrido,n):
- if(len(recorrido)==n+1):
- show(recorrido)
- else:
- i = 0
- while(i<len(Lista)):
- if(recorrido[-1]==Lista[i][0] or recorrido[-1]==Lista[i][1]):
- if(recorrido[-1]==Lista[i][0] and (Lista[i][1] not in recorrido or (Lista[i][1]==recorrido[0] and len(recorrido)==n))):
- aux = Lista[i]
- recorrido.append(aux[1])
- Lista.remove(aux)
- HamiltonianoInm(Lista,recorrido,n)
- recorrido.remove(aux[1])
- Lista.insert(i,aux)
- elif(recorrido[-1]==Lista[i][1] and (Lista[i][0] not in recorrido or (Lista[i][0]==recorrido[0] and len(recorrido)==n))):
- aux = Lista[i]
- recorrido.append(aux[0])
- Lista.remove(aux)
- HamiltonianoInm(Lista,recorrido,n)
- recorrido.remove(aux[0])
- Lista.insert(i,aux)
- i = i + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement