Ir para conteúdo

WillChapuis

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre WillChapuis

  1. Bom, eu preciso fazer uma tabela hash de 100 elementos como mostrado no esquema: Essa tabela (vetor) de 100 elementos … cada um deles possuem números chamados de “chaves” e um ponteiro apontando para o a próxima chave (lista encadeada).A regra que deve ser seguida para as inserções no vetor, é que o ultimo digito da chave é seu “endereço”, e esse endereço indica qual posição do vetor eu devo inserir. Ex: Inserir a chave 487 (chave) 487 % (tamanho do vetor) 100 = 7 Então devo inserir a chave 487 na posição 87 do vetor: v[87] = 487 Porém eu estou tendo problemas com os ponteiros para chamar as funções e utiliza-los... Eu sei fazer uma lista encadeada, porém não sei como fazer um vetor disso...Esse é um pouco do que eu fiz quando era só uma lista encadeada... struct dados { int chave; struct dados *prox; }; typedef struct dados Lista; void Cria(Lista **L) { *L = NULL; } void Inserir(Lista **L, int v) { Lista *p, *q; p = (Lista*)calloc(1, sizeof(Lista)); p->chave = v; p->prox = NULL; if(*L == NULL) { *L = p; } else { q = *L; while(q->prox != NULL) { q = q->prox; }; q->prox = p; } } Eu conversei com um amigo e ele me indicou fazer a declaração da struct dessa forma: struct dados { int chave; struct dados * prox; } tabela[100]; typedef struct dados Elemento; Entretanto eu não tenho ideia de como eu vou chamar isso na função... Porque o vetor vai estar na main()... e eu só vou chamar a função "Inserir" com o vetor e o valor para inserir Como eu chamaria essa função ? Inserir(???,int chave) Se alguém puder me dar uma luz, eu agradeço demais ... Preciso fazer varias coisas alem da inserção, mas não consigo porque eu não sei de que forma eu vou chamar esse vetor/variável de controle das listas
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.