Arboles estructura y base de datos
#include
#include
class arbol
{
private:
struct nodo
{
int dato;
arbol *izq;
arbol *der;
}
*raiz;
public:
arbol();
~arbol();
void imprime();
void agrega(int, arbol *,arbol *);
//int niveles(void);
int cuentanodos(void);
void preorden(void);
void postorden(void);
void enorden(void);
};
arbol::arbol()
{
raiz=new nodo;
raiz->dato= -1;
raiz->izq= NULL;raiz->der= NULL;
}
arbol::~arbol()
{
delete raiz;
}
int arbol::cuentanodos()
{
if(raiz==NULL)
return 0;
else
{
int cuenta=1;
cuenta +=(raiz->izq)->cuentanodos();cuenta +=(raiz->der)->cuentanodos();
return cuenta;
}
}
void arbol::imprime()
{
if(raiz)
{
(raiz->izq)->imprime();
printf("%2i", raiz->dato);
(raiz->der)->imprime();
}
}void arbol::agrega(int v, arbol *I, arbol *D)
{
raiz->dato=v;
raiz->izq=I;
raiz->der=D;
}
void arbol::preorden()
{
if(raiz!=NULL)
{
printf("%2i", raiz->dato);
(raiz->izq)->preorden();(raiz->der)->preorden();
}
}
/*/int arbol::niveles()
{
nodo *t;
int a,b;
if(t->izq==NULL && t->der==NULL)
return 1;
else
{
a=niveles(t->izq);
b=niveles(t->der);
if(aizq)->postorden();(raiz->der)->postorden();
printf("%2i", raiz->dato);
}
}
void arbol::enorden()
{
if(raiz!=NULL)
{
(raiz->izq)->enorden();
printf("%2i", raiz->dato);
(raiz->der)->enorden();
}
}
voidmain()
{
textbackground(RED);
clrscr();
arbol A, B, C, D, E, F, G, H, I, K;
printf("Arbol A:\n");
A.imprime();
printf("\n\n");
I.agrega(8, NULL, NULL);
printf("Arbol I:\n");
I.imprime();printf("\n\n");
H.agrega(6, NULL, NULL);
printf("Arbol H:\n");
H.imprime();
printf("\n\n");
G.agrega(7, &H, &I);
printf("Arbol G:\n");
G.imprime();
printf("\n\n");
F.agrega(5, NULL, &G);printf("Arbol F:\n");
F.imprime();
printf("\n\n");
C.agrega(9, &F, NULL);
printf("Arbol F:\n");
C.imprime();
printf("\n\n");
A.agrega(4, NULL, &C);
printf("Arbol A:\n");
A.imprime();...
Regístrate para leer el documento completo.