36
36
* 0 - 3 - 5 - 1 - 2 - 4 - 0: 13
37
37
*/
38
38
39
- package caixeiroviajante
39
+ package main
40
40
41
41
import "fmt"
42
42
@@ -52,7 +52,7 @@ var visitados []bool // Vertices visitados
52
52
var valorMelhorSolucao int
53
53
var valorSolucaoAtual int
54
54
55
- func caixeiroViajanteAux (x int ) {
55
+ func CaixeiroViajanteAux (x int ) {
56
56
57
57
// Significa que ja nao eh mais a melhor solucao podemos parar por aqui
58
58
if valorSolucaoAtual > valorMelhorSolucao {
@@ -92,7 +92,7 @@ func caixeiroViajanteAux(x int) {
92
92
// Incrementa o total do caminho percorrido com base na posicao da matriz
93
93
valorSolucaoAtual += matrizDistancia [ultimo ][i ]
94
94
// Chama recursivamente para o proximo vertice
95
- caixeiroViajanteAux (x + 1 )
95
+ CaixeiroViajanteAux (x + 1 )
96
96
// Se ainda nao terminou decrementa o valor da variabel que guarta o total do caminho
97
97
valorSolucaoAtual -= matrizDistancia [ultimo ][i ]
98
98
// Define como nao visitada para poder ser acessada por outro vertice
@@ -101,12 +101,12 @@ func caixeiroViajanteAux(x int) {
101
101
}
102
102
}
103
103
104
- func caixeiroViajante (posicaoInicial int ) {
104
+ func CaixeiroViajante (posicaoInicial int ) {
105
105
// Verifica se a posicao eh valida
106
106
if posicaoInicial < vertices {
107
107
visitados [posicaoInicial ] = true // Marca o primeiro vertice como visitado
108
108
tempSolucao [0 ] = posicaoInicial // Coloca a posicao inicial na primeira posicao da solucao temporaria
109
- caixeiroViajanteAux (1 ) // Chama o metodo auxiliar do caixeiro viajante
109
+ CaixeiroViajanteAux (1 ) // Chama o metodo auxiliar do caixeiro viajante
110
110
} else {
111
111
fmt .Println ("Vertice inicial invalid" )
112
112
}
@@ -140,12 +140,11 @@ func inicia() {
140
140
matrizDistancia = append (matrizDistancia , linha5 )
141
141
}
142
142
143
- // Funcao que roda o exemplo do caixeiro viajante
144
- func Run () {
143
+ func main () {
145
144
inicia ()
146
- caixeiroViajante (0 )
145
+ CaixeiroViajante (0 )
147
146
148
- fmt .Println ("\n Caixeiro Viajante" )
147
+ fmt .Println ("Caixeiro Viajante" )
149
148
fmt .Println ("Caminho minimo:" , valorMelhorSolucao )
150
149
for i := 0 ; i < vertices ; i ++ {
151
150
fmt .Print (melhorSolucao [i ], ", " )
0 commit comments