#include #include #include typedef struct arv{ int chave; struct arv *esq, *dir, *pai; }Tarv; Tarv *cn(){ Tarv *p; p=malloc(sizeof(Tarv)); p->esq=NULL; p->dir=NULL; return p; } Tarv *ca(int x){ Tarv *p; p=cn(); p->chave=x; return p; } int *ins(int x,Tarv *p){ Tarv *q; q=ca(x); if(xchave){ if (p->esq!=NULL){ printf("Nao foi possivel fazer a insersaoa\n"); } else{ p->esq=q; printf("a"); } } else{ if (x>p->chave){ if(p->dir!=NULL){ printf("Nao foi possivel fazer a insersaob\n"); } else{ p->dir=q; } } else{ printf("O valor que voce colocou eh igual ao valor da raiz, vtnc"); } } } int acha(Tarv *p,int x){ Tarv *z; int t; z=p; while(z->chave!=NULL){ if (z->chave==x){ printf("Esse numero existe na arvore!"); return 0; } else{ if(z->chave>x){ z=z->esq; } else{ z=z->dir; } } } } int main(){ Tarv *p; p=malloc(sizeof(Tarv)); p->esq=NULL; p->dir=NULL; int a=2,b=3,c=4; p=ca(2); ins(1,p); ins(1,p); acha(p,1); }