void preorden(struct nodo * raiz){ if(raiz != NULL){ printf("%d ",raiz->dato); preorden(raiz->izquierdo); preorden(raiz->derecho); } }
void preorden(struct arbol *A){ if(A != NULL){ printf("%d ", A->valor); preorden(A->izq); preorden(A->der); } }
void preorden(int nodo){ if(nodo == -1){ return; } visita(nodo); preorden(izq[nodo]); preorden(der[nodo]); }
void preorden( struct nodo *ptr , int profundidad){ if( ptr != NULL){ printf("%d -- prof: %d\n" ,ptr->a.nia,profundidad); preorden(ptr->izquierda,profundidad+1); preorden(ptr->derecha,profundidad+1); } }
void preorden(ptrNodo a) { if (a != NULL) { printf("%d\n",a->clave); preorden(a->izq); preorden(a->der); } }
void preorden(arbol_t *arbol) { if(arbol != NULL) { printf("%d\n", arbol->dato); preorden(arbol->izq); preorden(arbol->der); } }
void preorden(ARBOL A) { if(A==NULL) return; char c[5]; SDL_BlitSurface(nodo_visitado,NULL,screen,&(A->pos)); sprintf(c,"%d ",A->dato); print_on_screen(&c[0],A->pos.x+6,A->pos.y+6,fcolor,arbol_ttf); SDL_Flip(screen); SDL_Delay(1500); SDL_BlitSurface(nodo_img,NULL,screen,&(A->pos)); sprintf(c,"%d ",A->dato); print_on_screen(&c[0],A->pos.x+6,A->pos.y+6,fcolor,arbol_ttf); imprimir_recorridos(A->dato); preorden(A->izq); preorden(A->der); }
int encontrar(struct arbol *A, int val){ if(A == NULL){ printf("Error, no hay nodos en el arbol\n"); return 2; } if(A != NULL){ if(A->valor != val){ preorden(A->izq); preorden(A->der); } else return 1; } return 0; }
void menu() { ptrNodo raiz=NULL; int opcion = 0, valor = 0; do { system("cls"); printf("[1] Ingresar numero\n"); printf("[2] Recorrido pre-orden\n"); printf("[3] Recorrido in-orden\n"); printf("[4] Recorrido post-orden\n"); printf("[5] Salir\n\n"); printf("\t\tIngrese su opcion: [ ]\b\b"); scanf("%d",&opcion); switch(opcion) { case 1: system("cls"); printf("Ingresa el valor: "); scanf("%d",&valor); Insertar(&raiz,valor); system("pause"); break; case 2: system("cls"); preorden(raiz); system("pause"); break; case 3: system("cls"); inorden(raiz); system("pause"); break; case 4: system("cls"); postorden(raiz); system("pause"); break; case 5: system("cls"); printf("Salida\n"); break; default: system("cls"); printf("error\n"); system("pause"); break; } }while(opcion != 5); }
int main(){ int i,num; int array[1005]; scanf("%d",&N); for(i=0; i<N; ++i){ scanf("%d",&array[i]); } for(i=N-1; i>=0; --i){ if(i==(N-1)){ raiz = crear_nodo(array[i]); } else { insertar(raiz, array[i]); } } preorden(raiz); return 0; }
int main() { arbol_t *arbol = NULL; arbol = insertar(arbol, 10); arbol = insertar(arbol, 8); arbol = insertar(arbol, 7); arbol = insertar(arbol, 12); arbol = insertar(arbol, 11); arbol = insertar(arbol, 13); puts("preorden(arbol);"); preorden(arbol); puts("inorden(arbol);"); inorden(arbol); puts("postorden(arbol);"); postorden(arbol); puts("altura(arbol);"); printf("%d\n", altura(arbol)); }
int main(int argc, char *argv[]) { setlocale(LC_ALL, ""); int s = 1,opc = 0, contador = 0; while(s){ system("cls"); printf("Árbol binario (Doble apuntador)"); printf("\nSelecciona una opción"); printf("\n1) Meter datos"); printf("\n2) Imprimir en preorden"); printf("\n3) Imprimir en inorden"); printf("\n4) Imprimir en postorden"); printf("\n5) Imprimir todo"); printf("\n6) Obtener la profundidad del árbol"); printf("\n7) Eliminar datos"); printf("\n8) Buscar"); printf("\n9) Salir\n"); scanf("%d",&opc); switch(opc){ case 1: printf("\nInserta un valor: "); scanf("%d", &valor); system("cls"); insertar(); break; case 2: preorden(raiz); getch(); break; case 3: inorden(raiz); getch(); break; case 4: postorden(raiz); getch(); break; case 5: system("cls"); printf("Valores del árbol:"); imprimir(raiz,contador); getch(); break; case 6: printf("Profundidad: %d",profundidad(raiz)); getch(); break; case 7: printf("\nInserta un valor: "); scanf("%d", &valor); system("cls"); eliminar(&raiz,valor); break; case 8: printf("\nInserta un valor: "); scanf("%d", &valor); system("cls"); printf("Se encontró el valor %d",(buscar(raiz,valor))->dato); getch(); break; case 9: s = 0; break; default: printf("Muy mal >:("); getch(); break; } } system("cls"); printf("Adiós"); return 0; }
void main() { avl *T,*q,*p,*avail,*pp,*pivote; char opcion,opcion1,inf; unsigned int sw=0,SW=0; do{ menu (); do{ opcion=getchar(); }while(opcion<'0' && opcion>'5'); switch (opcion){ case '1': if (sw==0){ T=0; sw=1; SW=1; avail=0; clrscr(); gotoxy(31,12); printf("ARBOL INICIALIZADO"); validar(); } else{ clrscr(); gotoxy(24,12); printf("ARBOL YA CREADO "); validar(); } break; case '2': if (sw==0){ control_sw(); } else{ clrscr(); gotoxy(24,12); printf("DIGITE LA INFORMACION = "); gotoxy(47,12); lea_info(&inf); // validar(); SW=0; construiarbol(&T,inf); //inser_avl(&T,inf); //crear_arbol_busqueda(&T,inf); } break; case '3': if (sw==0){ control_sw(); } else{ if(SW==0){ do{ submenu(); do{ opcion1=getchar(); }while (opcion1<'0' && opcion1>'4'); switch(opcion1){ case '1': clrscr(); gotoxy(20,2); printf("RECORRIDO DE UN ARBOL EN PREORDEN"); gotoxy(20,8); preorden(T); validar(); break; case '2': clrscr(); gotoxy(23,2); printf("RECORRIDO DE UN ARBOL EN POSTORDEN"); gotoxy(20,8); postorden(T); validar(); break; case '3': clrscr(); gotoxy(24,2); printf("RECORRIDO DE UN ARBOL EN INORDEN"); gotoxy(23.5,8); inorden(T); validar(); break; default:break; } }while(opcion1!='4'); } else{ control_sw1(); } } break; case '4':if(sw==0){ control_sw(); } else{ if(SW==0){ clrscr(); gotoxy(24,12); printf("DIGITE LA INFORMACION A CANCELAR = "); lea_info(&inf); clrscr(); remover_nodo_del_arbol_avl(&T,inf,avail,&SW); preorden_avl(T); } else{ control_sw1(); } } break; default:break; } }while(opcion!= '5'); clrscr(); T=0; gotoxy(30,12); printf("FIN DE PROCESO"); }
main() { nom *t,*q,*p,*avail; int max,n,k; unsigned int sw=0; char opcion,opcion1,inf,info; sw=0; do{ clrscr(); gotoxy (30,2); printf (""); gotoxy (30,3); printf (" MENÚ PRINCIPAL "); gotoxy (30,4); printf (""); gotoxy(31.4,10); printf("1- INICIALIZACION "); gotoxy(31.4,12); printf("2- CREAR NODOS "); gotoxy(31.4,14); printf("3- MOSTRAR "); gotoxy(31.4,16); printf("4- CANCELAR"); gotoxy(31.4,18); printf("5- SALIR"); gotoxy(31.4,22); printf("POR FAVOR DIGITE LA OPCION DESEADA : "); gotoxy(68,22); do{ opcion=getchar(); }while(opcion<'0' && opcion>'4'); switch (opcion){ case '1':if (sw==0){ sw=1; t=0; clrscr(); printf("EL ARBOL YA ESTA INICIALIZADO\n"); validar(opcion); } else{ clrscr(); printf("EL ARBOL YA ESTA CREADO "); validar(opcion); } break; case '2': if (sw==0){ clrscr(); printf("EL ARBOL NO ESTA INICIALIZADO "); validar(opcion); } else{ clrscr(); lea_info(&inf); crear_arbol_busqueda(&t,inf); } break; case '3':if (sw==0){ clrscr(); printf("EL ARBOL NO ESTA INICIALIZADO "); validar(opcion); } else{ do{ clrscr(); gotoxy (30,2); printf (""); gotoxy (30,3); printf (" SUBMENÚ DE ORDENAMIENTO "); gotoxy (30,4); printf (""); gotoxy(33,12); printf("1- PREORDEN"); gotoxy(33,14); printf("2- INORDEN"); gotoxy(33,16); printf("3- POSTORDEN"); gotoxy(33,18); printf("4- RETORNAR"); gotoxy(33,22); printf("POR FAVOR DIGITE LA OPCION DESEADA : "); gotoxy(69,23); do{ opcion1=getchar(); }while (opcion1<'0' && opcion1>'4'); switch(opcion1){ case '1': clrscr(); gotoxy(25.5,2); printf("EL RECORRIDO EN PREORDEN ES:\n"); preorden(t); validar(opcion1); break; case '2': clrscr(); gotoxy(25.5,2); printf("EL RECORRIDO EN INORDEN ES:\n"); inorden(t); validar(opcion1); break; case '3': clrscr(); gotoxy(25,2); printf("EL RECORRIDO EN POSTORDEN ES:\n"); postorden(t); validar(opcion1); break; default:break; } }while(opcion1!='4'); } break; case '4':if(t==0){ printf ("ARBOL ESTA VACIO POR FAVOR NO CANCELAR "); } else{ printf ("DIGITE LA INFORMACION A CANCELAR"); lea_info(&info); remover_nodo_arbol(&t,info,avail); } break; default:break; } }while(opcion !='5'); clrscr(); printf("EL PROCESO HA TERMINADO , GRACIAS "); }
int main (){ int salida = 0, salida2 = 0, opc, listar_opc; int ndato, val; struct arbol *A; A = NULL; do{ printf("1) Insertar\n2) Borrar\n3) Listar\n4) Salir\n=============================\n"); printf("Seleccione una opcion:\t"); scanf("%d",&opc); switch(opc){ case 1: printf("Ingrese un nuevo número:\t"); scanf("%d",&ndato); insertar(&A, ndato); break; case 2: do{ printf("Seleccione el valor del nodo a borrar:\t"); scanf("%d", &val); }while((encontrar(A, val) ) != 0); borrar(&A, val); break; case 3: do{ printf("1) Preorden\n2) Inorden\n3) Postorden\n4) Salir\n===============\n"); printf("Seleccione una opcion:\t"); scanf("%d",&listar_opc); switch(listar_opc){ case 1: preorden(A); printf("\n"); break; case 2: inorden(A); printf("\n"); break; case 3: postorden(A); printf("\n"); break; case 4: salida2 = 1; break; default: salida2 = 0; break; } }while(salida2 == 0); //listar(A); break; case 4: salida = 1; break; default: salida = 0; break; } }while(salida == 0); getchar(); return 0; }
int main() { Arbol a = NULL; // Se crea un árbol vacío. // Ahora se insertan unos cuantos valores inserta(100, &a); inserta(200, &a); inserta(50, &a); inserta(150, &a); inserta(250, &a); inserta(20, &a); inserta(75, &a); inserta(60, &a); inserta(80, &a); inserta(170, &a); inserta(230, &a); inserta(300, &a); inserta(30, &a); inserta(120, &a); // Un recorrido para ver que todo está bien printf("\nBusqueda ENORDEN\n"); enorden(a); // Ahora se hacen algunas búquedas if (busca(60, a)) printf("\nmuy bien\n"); else printf("\nmuy mal\n"); if (busca(85,a)) printf("\nmuy mal\n"); else printf("\nmuy bien\n"); // Ahora borramos un elemento del árbol elimina(60, &a); // Para ver que se haya hecho bien, se hace un recorrido printf("\nBusqueda ENORDEN\n"); enorden(a); // Ahora borramos otro elemento. elimina(75, &a); // De nuevo, revisamos que todo esté bien printf("\nBusqueda ENORDEN\n"); enorden(a); // Finalmente, borramos otro elemento elimina(200, &a); // Revisamos printf("\nBusqueda ENORDEN\n"); enorden(a); // Ahora los otros recorridos, para que no hayan sido en balde printf("\nBusqueda PREORDEN\n"); preorden(a); printf("\nBusqueda POSTORDEN\n"); postorden(a); }
void ventana_recorridos() { SDL_Rect pos; char c[40]; pos.x=300; pos.y=251; SDL_BlitSurface(mini_window,NULL,screen,&pos); sprintf(c,"Recorridos :"); print_on_screen(&c[0],370,260,fcolor,font); pos.x+=110;pos.y+=50; SDL_BlitSurface(tipos_recorridos[0][0],NULL,screen,&pos); pos.y+=30; SDL_BlitSurface(tipos_recorridos[1][0],NULL,screen,&pos); pos.y+=30; SDL_BlitSurface(tipos_recorridos[2][0],NULL,screen,&pos); pos.x+=119;pos.y+=34; SDL_BlitSurface(boton_cancelar[0],NULL,screen,&pos); SDL_Flip(screen); int n=1; SDL_Event evento; while(n) { SDL_WaitEvent(&evento); if(evento.type==SDL_MOUSEMOTION) { if(posicion_cursor(410,410+tipos_recorridos[0][0]->w,301,301+tipos_recorridos[0][0]->h,evento.motion.x,evento.motion.y)) { pos.x=410; pos.y=301; SDL_BlitSurface(tipos_recorridos[0][1],NULL,screen,&pos); } else if(posicion_cursor(410,410+tipos_recorridos[1][0]->w,331,331+tipos_recorridos[1][0]->h,evento.motion.x,evento.motion.y)) { pos.x=410; pos.y=331, SDL_BlitSurface(tipos_recorridos[1][1],NULL,screen,&pos); } else if(posicion_cursor(410,410+tipos_recorridos[1][0]->w,361,361+tipos_recorridos[1][0]->h,evento.motion.x,evento.motion.y)) { pos.x=410; pos.y=361; SDL_BlitSurface(tipos_recorridos[2][1],NULL,screen,&pos); } else if(posicion_cursor(529,529+boton_cancelar[0]->w,395,395+boton_cancelar[0]->h,evento.motion.x,evento.motion.y)) { pos.x=529; pos.y=395; SDL_BlitSurface(boton_cancelar[1],NULL,screen,&pos); } else { pos.x=410; pos.y=301; SDL_BlitSurface(tipos_recorridos[0][0],NULL,screen,&pos); pos.x=410; pos.y=331, SDL_BlitSurface(tipos_recorridos[1][0],NULL,screen,&pos); pos.x=410; pos.y=361; SDL_BlitSurface(tipos_recorridos[2][0],NULL,screen,&pos); pos.x=529; pos.y=395; SDL_BlitSurface(boton_cancelar[0],NULL,screen,&pos); } SDL_Flip(screen); } else if(evento.type==SDL_MOUSEBUTTONDOWN) { if(posicion_cursor(410,410+tipos_recorridos[0][0]->w,301,301+tipos_recorridos[0][0]->h,evento.button.x,evento.button.y)) { draw_interface_principal(); print_arbol(A,0); SDL_Rect recta_pos={0,600,900,80}; SDL_FillRect(screen,&recta_pos,SDL_MapRGBA(screen->format,183,181,182,0)); char c[40]; sprintf(c,"Recorrido Inorder :"); print_on_screen(&c[0],30,600,fcolor,font_op);distancia=0; SDL_Flip(screen); inorden(A); return; } else if(posicion_cursor(410,410+tipos_recorridos[1][0]->w,331,331+tipos_recorridos[1][0]->h,evento.button.x,evento.button.y)) { draw_interface_principal(); print_arbol(A,0); SDL_Rect recta_pos={0,600,900,80}; SDL_FillRect(screen,&recta_pos,SDL_MapRGBA(screen->format,183,181,182,0)); char c[40]; sprintf(c,"Recorrido Preorder :"); print_on_screen(&c[0],30,600,fcolor,font_op);distancia=0; SDL_Flip(screen); preorden(A); return; } else if(posicion_cursor(410,410+tipos_recorridos[1][0]->w,361,361+tipos_recorridos[1][0]->h,evento.button.x,evento.button.y)) { draw_interface_principal(); print_arbol(A,0); SDL_Rect recta_pos={0,600,900,80}; SDL_FillRect(screen,&recta_pos,SDL_MapRGBA(screen->format,183,181,182,0)); char c[40]; sprintf(c,"Recorrido Posorder :"); print_on_screen(&c[0],30,600,fcolor,font_op);distancia=0; SDL_Flip(screen); postorden(A); return; } else if(posicion_cursor(529,529+boton_cancelar[0]->w,395,395+boton_cancelar[0]->h,evento.button.x,evento.button.y)) { draw_interface_principal(); print_arbol(A,0); SDL_Flip(screen); return; } } else if(evento.type==SDL_KEYDOWN && evento.key.keysym.sym==27) { draw_interface_principal(); draw_menu_botones(); print_arbol(A,0); SDL_Flip(screen); return; } } SDL_Flip(screen); }