Olá pessoal , tudo bem? É o seguinte, criei uma arvore binaria que armazena dados de veiculos (placa , modelo , marca etc...) e gostaria de saber como eu posso imprimir os nodos por ordem crescente de PLACA. Eu criei um vetor de Strings e tentei percorrer a arvore inteira e colocar todas as placas nesse vetor e assim ordená-lo. Mas devo estar fazendo muita coisa errada hahahha. A verdade é que eu não sei como eu coloco dados de uma arvore num vetor. Agradeço a atenção.
case 3:
vet = (char**) malloc (sizeof(char*)*qtd);
for (i = 0; i < qtd ; i++)
vet[i] = (char*) malloc (sizeof(char)*10);
emOrdem(avl , vet , 0, qtd);
ordenaVetor(vet , qtd);
//imprimeVetor(vet, qtd);
//for(aux=0; aux < qtd; aux++){
nodo = Pesquisa_ABP(avl, vet, 1);
exibeAVL(nodo);
//}
liberaMatriz (vet , qtd);
fflush(stdin);
getchar();
break;
FUNÇÔES:
AVL *Pesquisa_ABP (AVL *avl, char vet[][10], int ps)
{
if (avl == NULL)
return NULL;
if(strcmp(avl->reg.Info.placa, vet[ps]) == 0)
return avl;
else if (strcmp(avl->reg.Info.placa, vet[ps]) > 0)
return Pesquisa_ABP(avl->Esq, vet , ps);
else if (strcmp(avl->reg.Info.placa , vet[ps]) < 0)
return Pesquisa_ABP(avl->Dir, vet , ps);
}
void exibeAVL (AVL *avl){
if (avl == NULL)
return;
printf("Placa: %s\n",avl->reg.Info.placa);
printf("Chassi: %s\n",avl->reg.Info.chassi);
printf("Marca: %s\n",avl->reg.Info.marca);
printf("Modelo: %s\n",avl->reg.Info.modelo);
printf("Quantidade de portas: %d\n",avl->reg.Info.portas);
printf("Nome proprietario: %s\n",avl->reg.Info.proprietario);
printf("Cpf: %s\n",avl->reg.Info.cpf_proprietario);
printf("Telefone proprietario: %s\n",avl->reg.Info.telefone);
printf("=========================\n");
}
void emOrdem (AVL *avl , char vet[][10], int i,int qtd){
if (avl != NULL){
strcpy(vet[i],avl->reg.Info.placa);
//vet[i] = avl->reg.Chave;
if( i == qtd )
return;
emOrdem(avl->Esq, vet , i+1 , qtd);
emOrdem(avl->Dir, vet , i+1, qtd);
}
}
Pergunta
Sakomura
Olá pessoal , tudo bem? É o seguinte, criei uma arvore binaria que armazena dados de veiculos (placa , modelo , marca etc...) e gostaria de saber como eu posso imprimir os nodos por ordem crescente de PLACA. Eu criei um vetor de Strings e tentei percorrer a arvore inteira e colocar todas as placas nesse vetor e assim ordená-lo. Mas devo estar fazendo muita coisa errada hahahha. A verdade é que eu não sei como eu coloco dados de uma arvore num vetor. Agradeço a atenção.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.