Advertisement
Daboposki

Hamiltoniano

May 19th, 2019
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. def numVertices(Lista):
  2. n = 0
  3. a = []
  4. for v in Lista:
  5. if v[0] not in a:
  6. a.append(v[0])
  7. if v[1] not in a:
  8. a.append(v[1])
  9. return len(a)
  10.  
  11.  
  12. def Hamiltoniano(Lista, principio):
  13. n = numVertices(Lista)
  14. print(n)
  15. recorrido = [principio]
  16. HamiltonianoInm(Lista, recorrido, n)
  17.  
  18. def HamiltonianoInm(Lista,recorrido,n):
  19. if(len(recorrido)==n+1):
  20. show(recorrido)
  21. else:
  22. i = 0
  23. while(i<len(Lista)):
  24. if(recorrido[-1]==Lista[i][0] or recorrido[-1]==Lista[i][1]):
  25. if(recorrido[-1]==Lista[i][0] and (Lista[i][1] not in recorrido or (Lista[i][1]==recorrido[0] and len(recorrido)==n))):
  26. aux = Lista[i]
  27. recorrido.append(aux[1])
  28. Lista.remove(aux)
  29. HamiltonianoInm(Lista,recorrido,n)
  30. recorrido.remove(aux[1])
  31. Lista.insert(i,aux)
  32. elif(recorrido[-1]==Lista[i][1] and (Lista[i][0] not in recorrido or (Lista[i][0]==recorrido[0] and len(recorrido)==n))):
  33. aux = Lista[i]
  34. recorrido.append(aux[0])
  35. Lista.remove(aux)
  36. HamiltonianoInm(Lista,recorrido,n)
  37. recorrido.remove(aux[0])
  38. Lista.insert(i,aux)
  39. i = i + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement