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;
}
예제 #3
0
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;  
}