tree* insereArv(tree *arv, char letra) { if(arv == NULL) { arv = criaNo(letra, arv, arv); } else { if(letra > arv->dado) { //direita arv->dir = insereArv(arv->dir, letra); } else { //esquerda arv->esq = insereArv(arv->esq, letra); } } return arv; }
int main(void){ arv* arvore_a; int n, f; criar_arvore(arvore_a); insereArv(&arvore_a, 20); insereArv(&arvore_a, 15); insereArv(&arvore_a, 24); insereArv(&arvore_a, 11); insereArv(&arvore_a, 18); insereArv(&arvore_a, 37); printf("%s\n", avl(&arvore_a) ? "E avl" : "Nao e avl"); printf("%s\n", balan(&arvore_a) ? "Esta completamente balanceada" : "Nao esta completamente balanceada"); n = fator(&arvore_a, 24, &f); if(f) printf("Fator = %d\n", n); else printf("Nao encontrado.\n"); printf("Arvore:\n"); print(&arvore_a); destruirArv(&arvore_a); return 0; }
int main() { tree *arvore = criaVazia(); //arvore = criaNo('M', criaNo('H', criaNo('E', criaNo('C', criaNo('A', criaVazia(), criaVazia()),criaNo('D', criaVazia(), criaVazia())), criaNo('G', criaVazia(), criaVazia())), criaNo('K', criaVazia(), criaNo('L', criaVazia(), criaVazia()))), criaNo('R', criaNo('O', criaNo('N', criaVazia(), criaVazia()), criaVazia()), criaNo('T', criaVazia(), criaVazia()))); /* AROVRE */ arvore = insereArv(arvore, 'M'); arvore = insereArv(arvore, 'R'); arvore = insereArv(arvore, 'H'); arvore = insereArv(arvore, 'O'); arvore = insereArv(arvore, 'K'); arvore = insereArv(arvore, 'T'); arvore = insereArv(arvore, 'E'); arvore = insereArv(arvore, 'L'); arvore = insereArv(arvore, 'G'); arvore = insereArv(arvore, 'N'); arvore = insereArv(arvore, 'C'); arvore = insereArv(arvore, 'D'); arvore = insereArv(arvore, 'A'); /* AROVRE */ imprimirArvore(arvore); printf("\n(M(H(E(C(A(_)(_))(D(_)(_)))(G(_)(_)))(K(_)(L(_)(_))))(R(O(N(_)(_))(_))(T(_)(_))))\n"); printf("\n%d\n%d", 'H', 'X'); printf("\nPertence H na arvore = %d", pertence(arvore, 'H')); printf("\nPertence X na arvore = %d\n", pertence(arvore, 'X')); /*tree *arvoreBusca = criaVazia(); arvoreBusca = busca(arvore, 'C'); imprimirArvore(arvoreBusca);*/ /*arvore = removeArv(arvore, 'D'); arvore = removeArv(arvore, 'K'); arvore = removeArv(arvore, 'O');*/ arvore = removeArv(arvore, 'M'); imprimirArvore(arvore); return 0; }