Created
April 23, 2013 22:04
-
-
Save fgaray/5447813 to your computer and use it in GitHub Desktop.
Ejemplo de algoritmo de búsqueda en el arbol trinario para el lab de orga
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct Nodo{ | |
Informacion *info; | |
Nodo *pi, *pd; | |
}; | |
struct Informacion{ | |
int next_hop; | |
int interface; | |
}; | |
// llamar con | |
rec(raiz, raiz, 31); | |
Nodo *rec(Nodo *ultimo_valido, Nodo *nodo_actual, int b) | |
{ | |
if(b == -1) | |
{ | |
// no hay más bits que comparar | |
return ultimo_valido; | |
} | |
if(el bit en la posicion b es 1) | |
{ | |
//debemos movernos a la derecha | |
if(nodo_actual -> pd == NULL) | |
{ | |
//no nos podemos mover a la derecha por lo que debemos | |
//devolver el ultimo valido | |
return ultimo_valido; | |
}else{ | |
//nos podemos mover a la derecha | |
if(nodo_actual -> info == NULL) | |
{ | |
//este nodo no es valido, por lo tanto nos | |
//quedamos con el ultimo valio | |
return rec(ultimo_valido, nodo_actual -> pd, b - 1); | |
}else{ | |
//este nodo es valido, por lo que debemos | |
//actualizar el ultimo nodo valido | |
return rec(nodo_actual, nodo_actual -> pd, b - 1); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment