Pudieran ayudarme con la impresion de un arbol binario ? la cosa es que ya lo imprime mas o menos asi
13
11
10
9
8
5
3
pero quisiera saber como se puede imprimir con lineas y circulitos :S no tengo idea de como :huh:
#include<stdio.h>
#include<stdlib.h>
struct nodo{
int info;
struct nodo *izq;
struct nodo *der;
int factor;
};
typedef struct nodo tarbin;
typedef tarbin *arbin;
//Prototipos de Funciones
int inserta_nodo_arbol(arbin *a, int x);
arbin arbizq(arbin a);
arbin arbder(arbin a);
void ini_arb(arbin *a);
int arbol_vacio(arbin a);
void imprimir_arbol(arbin a,int n);
int main()
{
arbin a;
int num,i;
ini_arb(&a);
printf("Inserta 7 Numeros\n"); for(i=0;i<7;i++)
{
inserta_nodo_arbol(&a,num);
}
imprimir_arbol(a,0);
return 0;
}
//FUNCIONES
void ini_arb(arbin *a)
{
*a=NULL;
}
int arbol_vacio(arbin a)
{
return a==NULL;
}
int inserta_nodo_arbol(arbin *a, int x)
{
if(arbol_vacio(*a))
{
*a
=(arbin
)malloc(sizeof(tarbin
)); if(*a==NULL)
return 1;
(*a)->info=x;
(*a)->der=(*a)->izq=NULL;
return 0;
}
if(x<(*a)->info) return inserta_nodo_arbol(&(*a)->izq,x);
if(x>(*a)->info) return inserta_nodo_arbol(&(*a)->der,x);
return 2;
}
arbin arbizq(arbin a)
{
return a->izq;
}
arbin arbder(arbin a)
{
return a->der;
}
void imprimir_arbol(arbin a,int n)
{
int i;
if(a!=NULL)
{
imprimir_arbol(a->der,n+1);
for(i=1;i<=n;i++)
imprimir_arbol(a->izq,n+1);
}
}
pero quisiera saber como se puede imprimir con lineas y circulitos :S no tengo idea de como
Lineas y ciruclitos ?
Como tienen que quedar los 7 números?
Para lo que quieres hacer, m parece que vas a tener que recurrir a librerías gráficas (SDL etc...)