void pos_ordem(NoABP *n, void (*mostra_info)(void *) ){ if(n != NULL){ pos_ordem(n->esq, (*mostra_info) ); pos_ordem(n->dir, (*mostra_info) ); (*mostra_info)(n->info); } }
void pos_ordem(tree * figueira, nodo * temp){ if (temp != NULL){ pos_ordem(figueira, temp->esq); pos_ordem(figueira, temp->dir); display(temp); } }
void percurso_pos_ordem(ABP a, void (*mostra_info)(void *) ){ if(a.raiz == NULL) printf("Arvore vazia!\n"); else{ printf("Percurso em Pos-Ordem:\n\n"); pos_ordem(a.raiz, (*mostra_info) ); } printf("\n----------------------\n\n"); }
// ------------------------------------------------------------------------------ // Funcao main // ------------------------------------------------------------------------------ int main() { tree * figueira; int escolha; figueira = init(); for ( ; ; ){ escolha = menu(); switch(escolha){ case 1:inserir(figueira); break; case 2: excluir(figueira); break; case 3: pesquisar(figueira); break; case 4: h(figueira); break; case 5: { printf("\n"); printf("5. Em ordem\n"); printf("------------------------\n"); em_ordem(figueira, figueira->raiz); printf("\n"); } break; case 6: { printf("\n"); printf("6. Pre ordem\n"); printf("------------------------\n"); pre_ordem(figueira, figueira->raiz); printf("\n"); } break; case 7: { printf("\n"); printf("7. Pos ordem\n"); printf("------------------------\n"); pos_ordem(figueira, figueira->raiz); printf("\n"); } break; case 8: exit(0); break; } } }
int main() { arvore* a = alocar_arvore(); inserir_arvore(a,5); inserir_arvore(a,9); inserir_arvore(a,3); inserir_arvore(a,2); inserir_arvore(a,4); inserir_arvore(a,6); inserir_arvore(a,7); inserir_arvore(a,8); inserir_arvore(a,1); pos_ordem(a->raiz); printf("\n"); in_ordem(a->raiz); printf("\n"); pre_ordem(a->raiz); printf("\n"); return 0; }