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
O algún programa de búsqueda binaria que puedan pasarme estaría cool
Código [Seleccionar]
#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;
}