Título: Ayuda con un arbol binario
Publicado por: freshhprince en 1 Noviembre 2021, 04:03 am
Hola necesito ayuda con este programa, funciona bien pero necesito insertarle la función de eliminar nodo, pero no se como hacerlo, soy principiante por favor ayuda;( O algún programa de búsqueda binaria que puedan pasarme estaría cool #include <stdio.h> #define MAX 1023 #include <conio.h> #include <stdlib.h>
int arbolBusquedaBinaria[MAX];
int buscar(int arbolBusquedaBinaria[], int x, int i){ if(arbolBusquedaBinaria[i] == 0){ //Busqueda sin exito: en arbolBusquedaBinaria[0]... //...se guarda la posicion donde no se encontro x... //Lo anterior con el ojbjeto que la funcion insertar... //...sepa donde insertar... arbolBusquedaBinaria[0] = i; return 0; } if(arbolBusquedaBinaria[i] < x) return buscar(arbolBusquedaBinaria, x, 2*i + 1); else if(arbolBusquedaBinaria[i] > x) return buscar(arbolBusquedaBinaria, x, 2*i); else return i; }
int buscarMin(int arbolBusquedaBinaria[]){ int i = 1, j; while(arbolBusquedaBinaria[i] != 0){ j = arbolBusquedaBinaria[i]; i = 2 * i; } return j; } int buscarMax(int arbolBusquedaBinaria[]){ int i = 1, j; while(arbolBusquedaBinaria[i] != 0){ j = arbolBusquedaBinaria[i]; i = 2 * i + 1; } return j; }
void insertar(int arbolBusquedaBinaria[],int x){ int posicion; posicion = buscar(arbolBusquedaBinaria,x,1); if(posicion != 0) printf("\n El %i ya esta insertado", x); else arbolBusquedaBinaria[arbolBusquedaBinaria[0]]=x; }
int main() { int i, bandera = 1, n; printf("\t\t\t\tBienvenido,puedes generar un arbol de busqueda binario"); printf("\n\n\nCuantos nodos tiene tu arbol binario?: "); scanf("%i", &n); printf("\nDame el arbol: "); for(i = 1; i <= n; i++) scanf("%i", &arbolBusquedaBinaria[i]); printf("\nElemento minimo: %i", buscarMin(arbolBusquedaBinaria)); printf("\nElemento maximo: %i", buscarMax(arbolBusquedaBinaria)); while(bandera){ printf("\n\n1.- Buscar un numero:"); printf("\n\n2.- Insertar un numero:"); printf("\n\n3.- Eliminar un numero:\n"); printf("\n\n4.- Salir"); printf("Opcion?: "); scanf("%i", &n); if(n == 1){ printf("\nDame el numero a buscar: "); scanf("%i", &n); if(n = buscar(arbolBusquedaBinaria, n, 1)) printf("\nEl numero que buscas esta en la posicion: %i\n\n", n); else printf("\nEl numero no esta y deberia estar en la posicion %i", arbolBusquedaBinaria[0]); } else if(n == 2){ printf("\nDame el numero a insertar: "); scanf("%i", &i); if(n = buscar(arbolBusquedaBinaria, i, 1)) printf("\nEl numero ya se encuentra en la posicion %i: ", n); else arbolBusquedaBinaria[arbolBusquedaBinaria[0]] = i; } else bandera = 0; } getchar(); return 0; }
Título: Re: Ayuda con un arbol binario
Publicado por: .xAk. en 20 Noviembre 2021, 03:34 am
conio.h?
si tienes la función de buscar, empieza por ahí ... o a ver, cómo emiezas la función. Por mi parte necesito ver lo que te falla o esto no es tuyo.
|