void ordem(no *raiz){ //função que imprime os valores da árvore em ordem if(raiz == NULL){ return; } ordem(raiz->esq); printf("%d ", raiz->chave); ordem(raiz->dir); return; }
void menu(no *raiz){ int j = 1; int n, i; printf("Agora que voce ja selecionou os elementos da arvore,\nselecione o que deseja fazer: "); while(j!=0){ printf("\n\n1 : Imprime a arvore em ordem\n2 : Imprime a arvore em preordem\n3 : Imprime a arvore em posordem\n"); printf("4 : Imprime em Labelled Bracketing\n5 : Buscar um numero\n6 : Remover um numero\n7 : Inserir um numero\n"); printf("8 : Sair\n"); scanf("%d", &i); switch(i){ //para cada número que o usuário entrar o programa realizará um comando diferente case 1: ordem(raiz); break; case 2: preordem(raiz); break; case 3: posordem(raiz); break; case 4: lbracketing(raiz); break; case 5: printf("\nEscreva o elemento que deseja buscar: "); scanf("%d", &n); busca(&raiz, n); break; case 6: printf("\nEscreva o elemento que deseja remover, escreva um que esta na arvore! :"); scanf("%d", &n); remover(&raiz, n); break; case 7: printf("Digite o elemento que deseja inserir, digite um que nao esteja na arvore! :"); scanf("%d", &n); inserir(&raiz, n); break; case 8: j=0; break; default : printf("Insira um valor válido!\n"); break; } } return; }
int main(){ carro *inicio=NULL,*fim=NULL; int opc,contador=1; do{ printf("\nDigite - '1' Entrada '2' Saida '3' Ordenar '0'finalizar\n "); scanf("%d",&opc); if(opc==1){ inserir(&inicio,&fim,contador); contador++; }else if(opc==2){ finalizar(&inicio); contador--; }else if(opc==3) ordem(&inicio,contador); }while(opc!=0); getch(); return 0; }