• Viernes 8 de Noviembre de 2024, 18:38

Autor Tema:  Arbol Binario De Busqueda  (Leído 1005 veces)

ratagrooves

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Arbol Binario De Busqueda
« en: Lunes 19 de Noviembre de 2007, 21:30 »
0
hola soy principiante en la programacion
y me pidieron hacer un proyecto :(lenguaje c)
crear un arbol binario de busqueda,el cual tenga insercion,borrado ,inorden
e imprima el arbol esquematicamente..
bueno esto es lo que llevo hasta aora

#include <stdio.h> para printf(),scanf() y perror()
#include <conio.h> para getch() y gotoxy()
#include<stdlib.h>

struct Arbol{
int Dato;
struct Arbol *Izq;
struct Arbol *Der;
};

struct Arbol *ConstruirArbol(int);
void ImprimeArbol(struct Arbol *,int);
void Error();


int main(void)
{
int nodos;
struct Arbol *Raiz;
system("cls");
printf("Numero de nodos: ");
scanf("%d",&nodos);
printf("\nIntroduce los datos.\n\n");
Raiz=ConstruirArbol(nodos);
printf("\nImpresion del Arbol.\n\n");
ImprimeArbol(Raiz,0);
getch();
return 0;
}

void Error(void)
{
perror("error: No hay memoria.\n");
getch();
abort();
}
struct Arbol *NuevoNodo(void)
{
struct Arbol *Raiz=(struct Arbol *)malloc(sizeof(struct Arbol));
if(!Raiz) Error();
return Raiz;
}

struct Arbol *ConstruirArbol(int nodos)
{
struct Arbol *Raiz;
int Ni,Nd;
if(nodos==0)
return NULL;
else{
Ni=nodos/2;
Nd=nodos-Ni-1;
Raiz=NuevoNodo();
printf("Dato-> ");
scanf("%d",&Raiz->Dato);
Raiz->Izq=ConstruirArbol(Ni);
Raiz->Der=ConstruirArbol(Nd);
return Raiz;
}
}

void ImprimeArbol(struct Arbol *Raiz,int n)
{
int i;
if(Raiz==NULL) return;

ImprimeArbol(Raiz->Izq,n+1);
for(i=0;i<n;i++)
printf(" ");
printf("%d\n",Raiz->Dato);
ImprimeArbol(Raiz->Der,n+1);

}

porfavor ayudenme
mi mail es

rata_grooves@hotmail.com

gracias

Solenbum

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Arbol Binario De Busqueda
« Respuesta #1 en: Martes 27 de Noviembre de 2007, 23:35 »
0
No entiendo bien tu planteamiento con mas estructuras aparte de la que representa el arbol binario (lista/punteros) claro. De todas formas:

Aquí tienes "EJEMPLO de ABB en C":
www.conclase.net/c/edd/index.php?cap=007c#7_9

Desde la estructura hasta los recorridos.

Si no tienes problemas con punteros, no deberías tener problemas de entendimiento, planificación e implementación.

Suerte.

Postdata, usa el papel para practicar ejemplos cuando la cosa no funcione (o haz trazas con software estilo DDD, etc.)