#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
struct node{
int num;
struct node *L;
struct node *R;
};
typedef struct node node;
void criarArvore(node **pRaiz){
*pRaiz = NULL;
}
void inserir(struct node **pRaiz, int n){
if(*pRaiz == NULL){
*pRaiz = (node *) malloc(sizeof(node));
(*pRaiz)->L = NULL;
(*pRaiz)->R = NULL;
(*pRaiz)->num = n;
}else{
if(n < (*pRaiz)->num)
inserir(&(*pRaiz)->L,n);
if(n > (*pRaiz)->num)
inserir(&(*pRaiz)->R,n);
}
}
void exibirRED(struct node *pRaiz){
if(pRaiz != NULL){
printf("\n%i",pRaiz->num);
exibirRED(pRaiz->L);
exibirRED(pRaiz->R);
}
}
void exibirERD(struct node *pRaiz){
if(pRaiz != NULL){
exibirERD(pRaiz->L);
printf("\n%i",pRaiz->num);
exibirERD(pRaiz->R);
}
}
void exibirEDR(struct node *pRaiz){
if(pRaiz != NULL){
exibirEDR(pRaiz->L);
exibirEDR(pRaiz->R);
printf(" - %i - ",pRaiz->num);
}
}
int main(void) {
node *pRaiz;
criarArvore(&pRaiz);
inserir(&(pRaiz),20);
inserir(&(pRaiz),1);
inserir(&(pRaiz),3);
printf("\nRED:");
exibirRED(pRaiz);
printf("\nERD:");
exibirERD(pRaiz);
printf("\nEDR:");
exibirEDR(pRaiz);
return 0;
}