int main(int argc, char *argv[]) { /* Para debug */ // argc=3;argv[1]="prueba.txt";argv[2]="salida.txt"; if (argc == 3) printf("Los argumentos son: %s %s\n\n", argv[1], argv[2]); else if (argc > 3) { printf("ERROR: Demasiados argumentos\n\n"); return 1; } else { printf("ERROR: Se esperan dos archivo de texto como argumento.\n\n"); return 2; } stream = fopen(argv[1], "r"); output = fopen(argv[2], "w"); inicializarDiccionario(tabla_simb); agregarPalabrasReservadas(tabla_simb); objetivo(); fclose(stream); fclose(output); printf("\nFinalizo el archivo con %d errores.\n", errores); /* Para debug */ //graficarDiccionario(tabla_simb); return 0; }
/* Algoritmo Backtracking. 1. 2. Candidatos <- {1, 2, ..., n} 3. for i in Candidatos 4. Candidatos <- Candidatos \ {i} 5. backtrack(Candidatos) 6. Candidatos <- Candidatos U {i} */ int backtracking(unsigned int inicio) { if (!objetivo(inicio)) return 0; unsigned int i; for (i = inicio; i < VERTICES->tamanho; i++) { troca(&VERTICES->C[i], &VERTICES->C[inicio]); if (!backtracking(inicio + 1)) return 0; troca(&VERTICES->C[i], &VERTICES->C[inicio]); } return 1; }