Ir para conteúdo
Fórum Script Brasil
  • 0

Tabela hash


douglasThome

Pergunta

Olá!

estou com algumas duvidas , escrevi um código de uma tabela hash ,mas estou com dificuldades de fazer ele compilar e estar testando ele. (codigo a baixo)

const int TAM = 2000;

using namespace std;


struct Tcliente{
    int codigo;
    string nome;
};

template <int M>
struct THashEA{
    Tcliente *tabela[M];
    int qtd;
};

template <int M>
void inicializaTHEA(THashEA<M> & th){
    th.qtd = 0;
    for(int i= 0; i < M ; i++){
        th.tabela= NULL;
    }
}

template <int M>
int funcaoTransf (THashEA<M> &th , int chave){
    return chave % M ;
}

template <int M>
bool insereTHEA(THashEA<M> & th , Tcliente c){//criar cliente(OBS: Tcliente *c,cria)
    Tcliente *nov = new Tcliente;
    int code = nov->codigo;
    int hashe = funcaoTransf(th , code);
    if(th.qtd == 0){
        th.tabela[hashe] = nov;
        th.qtd++;
        return true;
    }
    for(int i = hashe; i <M ; i++){//procura posição livre da posição da chave
        if(th.tabela == NULL){// verifica se a posição e nula para poder alocar
            th.tabela[hashe] = nov;
            th.qtd++;
            return true;
        }
    }
    return false;
}

template <int M>
bool pesquisaTHEA(THashEA<M> & th , int codigo){
    //procurar indice Hash(FT)
    //procurar a chave
    codigo = funcaoTransf(th ,  codigo);
    for(int i=codigo ; i < M ; i++){
        if(th.tabela= codigo){
            return true;
        }
    }
    return false;
}


int main(){
    srand(time(NULL));
    THashEA *tabhash<TAM>;
    Tcliente *novo = new Tcliente;
    novo->codigo = rand() %32000+1;
    insereTHEA(tab<TAM>,novo)
}

 

Primeiro queria saber se o codigo da estrutura da tabela contem erros ,e depois o motivo do qual eu não consigo criar na fução main() a tabela (THashEA *tabhash<TAM>;)

Desde já agradeço a atenção.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...