pessoal, estou com problemas com ponteiros, na verdade são mais dúvidas de como usá-los =)
ele imprime a préOrdem com problemas:
#include "stdio.h"
//Estrutura da árvore
typedef struct no {
int valor;
struct no *pdir;
struct no *pesq;
} Arvore;
void Inserir(struct no *pRaiz){
//Ler valor do elemento a esquerda, caso seja 0, este nao terá filhos.
int valor;
printf("Digite o valor do Filho do Elemento %i a Esquerda",pRaiz->valor);
scanf("%i",&valor);
if(valor != 0){
Arvore *filho = (Arvore*) malloc(sizeof(Arvore));
filho->valor = valor;
pRaiz->pesq = filho;
Inserir(filho);
}
//Ler valor do elemento a direita, caso seja 0, este nao terá filhos.
printf("Digite o valor do Filho do Elemento %i a Direita",pRaiz->valor);
scanf("%i",&valor);
if(valor != 0){
Arvore *filho = (Arvore*) malloc(sizeof(Arvore));
filho->valor = valor;
pRaiz->pdir = filho;
Inserir(filho);
}
}
void PreOrdem(struct no *pRaiz){
printf("%i",pRaiz->valor);
if(pRaiz->pesq != 0);
PreOrdem(pRaiz->pesq);
if(pRaiz->pdir != 0);
PreOrdem(pRaiz->pdir);
}
main(){
int valor;
Arvore *Raiz = (Arvore*) malloc(sizeof(Arvore));
printf("digite o valor da raiz");
scanf("%i",&valor);
Raiz->valor = valor;
Inserir(Raiz);
printf("%i",Raiz->pesq->pesq);
PreOrdem(Raiz);
system("pause");
}
Acredito que o problema esta nos parametros das funções, nas chamadas das funções, ou nos ponteiros
Obrigado
