Jump to content
Fórum Script Brasil
  • 0

Tabela hash


douglasThome
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...