#include #include struct arvore { struct no *raiz; }; struct no { struct no *esq; int valor; struct no *dir; }; struct no* inserir(struct no *noAtual, int valor) { if (noAtual == NULL) { struct no *novoNo = malloc(sizeof(struct no)); novoNo->valor = valor; novoNo->esq = NULL; novoNo->dir = NULL; return novoNo; } else { //Decidir o que se vou para esquerda ou direita if (valor < noAtual->valor) noAtual->esq = inserir(noAtual->esq, valor); else noAtual->dir = inserir(noAtual->dir, valor); } } int main() { struct arvore *arvore = malloc(sizeof(struct arvore)); arvore->raiz = NULL; arvore->raiz = inserir(arvore->raiz, 10); arvore->raiz = inserir(arvore->raiz, 7); arvore->raiz = inserir(arvore->raiz, 15); arvore->raiz = inserir(arvore->raiz, 14); printf("%d", arvore->raiz->dir->esq->valor); return 0; }