Ir para conteúdo
Fórum Script Brasil

Sakomura

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Sakomura postou

  1. 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); } }
×
×
  • Criar Novo...