0
Más
Siguiente blog»
Crear blog Acceder
Charle un poco con el administrador
What do you think about New Orleans? say
Buscar codigo fuente fuente
Buscar
Lo mas visto
Arbol binario de busqueda Agenda Telefonica Puzzle Método Gauss-Jordan Palíndromo
Archivo del blog
▼ 2013 2013 (34) (34) ▼ octubre octubre (34) (34)
Busqueda Día de la semana Base de datos de alumnos Elimina archivo o directorio
6/5/2015
Código Fuente C++: Arbol binario de busqueda void postorden(ARBOL);
Codificación de Huffman
void treefree(ARBOL);
Batalla Naval Calculadora
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
Semáforo Reloj Binario
/*-------------------------------------------------------*/
Menu UP-DOWN Conversor entre bases (hexadecial a binario y otra... Traductor de ingles a español Analizador lexico
main(){
Algoritmo SHA-1
int i;
Calcula la letra del DNI
//CONTADOR
char newnod,chain[200],elementos;
//DECLARACION DE CADENA,BANDERA Y VARIABLE QUE CONTIENE
Array de estructura Archivos secuénciales
EL NUEVO VALOR A INSERTAR EN EL ARBOL
Comprobar si un número es primo clrscr();
Palíndromo
ARBOL raiz=NULL;
//DECLARACION DE VARIABLE DE TIPO ARBOL
printf("\n\n\tIntroduzca una cadena de caracteres (max. 200 elementos):\n");
Histograma de un arreglo de carácteres sin if ni c... Resolución de ecuaciones de segundo grado
gets(chain); elementos=strlen(chain);
//CHECA EL TAMA¥O DE LA CADENA Y ESTABLECE EL NUMERO DE NODO
S DEL ARBOL
Operaciones matemáticas básicas Factura sencilla
for(i=1;i<=elementos;i++)
Calcular perímetro y área de un círculo
{
Intersección recta- circunferencia Transcribir números a letras
newnod=chain[i-1];
Cálculo de interés bancario
insertanodonuevo(&raiz,newnod);
ASCII Art Matriz de randoms Agenda Telefonica
}
Puzzle printf("\n\n preorden ¯¯\t"); preorden(raiz); printf("\n\n inorden
Fibonachi //LLAMADO A FUNCION DE RECORRIDO EN PREORDEN
Arbol binario de busqueda
¯¯\t");
inorden(raiz);
Método Gauss-Jordan
//LLAMADO A FUNCION DE RECORRIDO EN INORDEN
Visitas printf("\n\n postorden ¯¯\t"); postorden(raiz);
//LLAMADO A FUNCION DE RECORRIDO EN POSTORDEN
getch(); treefree(raiz); raiz=NULL;
983 Comparte en facebook
//LIBERACION DE MEMORIA DEL ARBOL. //ASIGNACION DE UN VALOR NULO A LA RAIZ.
return 0;
Share View stats
}
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ /*-CREA UN NUEVO NODO Y COLOCA LOS VALORES DEL NUEVO ELEMENTO EN LA POSICION CORRESPONDIENTE */
void insertanodonuevo(ARBOL *rarbol,int nuevo){ if(*rarbol==NULL){
//CREACION DE UN NUEVO NODO
*rarbol=(NODO *)malloc(sizeof(NODO)); if(*rarbol!=NULL){
http://codigofuentecpp.blogspot.com/2013/10/arbol-binario-de-busqueda_25.html
2/5
6/5/2015
Código Fuente C++: Arbol binario de busqueda //ASIGNACION DE VALORES NUEVOS EN EL NODO NUEVO (*rarbol)->info=nuevo; (*rarbol)->izqnodo =NULL; (*rarbol)->dernodo=NULL; } else{printf("\n Memoria No Disponible !!!!\n");} } else if(nuevo<(*rarbol)->info)
//checa si el elemento nuevo es mayor que el elemento pad
re insertanodonuevo(&((*rarbol)->izqnodo),nuevo);
//coloca el elemento a la iz
quierda del padre o raiz
else if(nuevo>(*rarbol)->info)
//checa si el elemento nuevo es menor que el elem
ento padre insertanodonuevo(&((*rarbol)->dernodo),nuevo);
//coloca el element
o a la derecha del padre o raiz } /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ //FUNCION ITERATIVA LA CUAL RECORRE EL ARBOL IMPRIMIENDO SIEMPRE EL VALOR //QUE CONTIENE LA RAIZ,DESPUES LA RAMA IZQUIERDA,LUEGO LA RAMA DERECHA,SIEMPRE //Y CUANDO LA RAIZ SEA DIFERENTE DE UN VALOR NULO, SI ES NULO SALTA A LA SIGUIENTE INSTRUCCIO N. void preorden(ARBOL rarbol){ if(rarbol!=NULL){ printf(" %c ",rarbol->info); preorden(rarbol->izqnodo); preorden(rarbol->dernodo);
} } /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ //FUNCION ITERATIVA LA CUAL RECORRE EL ARBOL BUSCANDO EL NODO MAS IZQUIERDO //QUE CONTIENE EL ARBOL O SEA HASTA QUE LA RAMA DEL ULTIMO NODO SEA NULO,LUEGO LA IMPRIME,DES PUES //DESPUES LA RAIZ DEL SUB-ARBOL,Y LUEGO EL NODO DE LA DERECHA.
void inorden(ARBOL rarbol){ if(rarbol!=NULL){ inorden(rarbol->izqnodo); printf(" %c ",rarbol->info); inorden(rarbol->dernodo);
http://codigofuentecpp.blogspot.com/2013/10/arbol-binario-de-busqueda_25.html
3/5
6/5/2015
Código Fuente C++: Arbol binario de busqueda }
} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ //FUNCION ITERATIVA LA CUAL RECORRE EL ARBOL BUSCANDO EL NODO QUE ESTA MAS A LA IZQUIERDA //LUEGO EL NODO DE LA DERECHA Y LUEGO LA RAIZ DE ESE SUB-ARBOL void postorden(ARBOL rarbol){ if(rarbol!=NULL){ postorden(rarbol->izqnodo); postorden(rarbol->dernodo); printf(" %c ",rarbol->info); } } /**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ //FUNCION ITERATIVA IDENTICA AL RECORRIDO EN POSTORDEN LA UNICA DIFERENCIA //ES QUE EN VEZ DE IMPRIMIR EN PANTALLA EL VALOR DE UN NODO ESTE ES //ELIMINADO DEL ARBOL LIBERANDO LA MEMORIA CON LA FUNCION free(), ELEGI ESTA //FORMA YA QUE SE ELIMINA PRIMERO LOS NODOS HIJO DE EL SUB-ARBOL Y LUEGO LA RAIZ //YA QUE SI SE ELIMINA LA RAIZ PRIMERO, LOS DATOS DE LOS HIJOS SE DESCONECTAN //DEL ARBOL PERO LA MEMORIA QUE OCUPABAN SIGUE SIENDO UTILIZADA Y DE ESTA FORMA //SE ELIMINA EL ARBOL DE ABAJO HACIA ARRIBA (O SEA DE LOS HIJOS A LA RAIZ).
void treefree(ARBOL rarbol){ if(rarbol!=NULL){ treefree(rarbol->izqnodo); treefree(rarbol->dernodo); free(rarbol); }
}
Publicado por Cristian Gutierrez en 1:00 Recomendar esto en Google
Etiquetas: Arbol, Binario, busqueda, c++, codigo, de, fuente, programacion
Entrada más reciente
Página principal
Aclaracion
Al ser codigos recolectados de todos lados es posible que haya ciertos errores en los mismos, despues de todo la idea es brindar una guia.
http://codigofuentecpp.blogspot.com/2013/10/arbol-binario-de-busqueda_25.html
4/5
6/5/2015
Código Fuente C++: Arbol binario de busqueda Con la tecnología de Blogger.
http://codigofuentecpp.blogspot.com/2013/10/arbol-binario-de-busqueda_25.html
5/5