Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 implementezione funzione hash

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Nik Inserito il - 07/09/2004 : 23:50:08
qualcuno mi saprebbe dire con esattezza l'implementazione della funzione hash in c? grazie
3   U L T I M E    R I S P O S T E    (in alto le più recenti)
nicux Inserito il - 08/09/2004 : 20:41:27
Citazione:
Messaggio inserito da Nik

Grazie, mi sa che manca qualcosa dopo il for i=0 vero?

int hash(char *chiave)
{
int indice=0, base=128;
for(i=0 ;*chiave!='\0';chiave++)
indice=(base*indice+*chiave)%DIM_TABELLA;
return indice;




non manca nulla,
non ho bisogno di contare da 0 a n perchè il ciclo si ferma quando il vettore finisce.
Prova a esercitarti sui cicli di scansioni di stringhe (o vettori di char) vedrai che ti renderai conto del perchè si usa quella forma sul for.
Nik Inserito il - 08/09/2004 : 20:26:19
Grazie, mi sa che manca qualcosa dopo il for i=0 vero?

int hash(char *chiave)
{
int indice=0, base=128;
for(i=0 ;*chiave!='\0';chiave++)
indice=(base*indice+*chiave)%DIM_TABELLA;
return indice;
nicux Inserito il - 08/09/2004 : 01:58:32
Citazione:
Messaggio inserito da Nik

qualcuno mi saprebbe dire con esattezza l'implementazione della funzione hash in c? grazie



ai fini dell'esame di linguaggi non è importante la qualità della funzione hash, è sufficiente che svolga il lavoro di restituire un numero compreso in un determinato intervallo a fronte di una stringa in argomento.
Per tenere ad esempio il valore di ritorno x nell'intervallo [0,n] devi fare una semplice
x=x%n;
mentre la conversione della stringa è abbastanza arbitraria, a me piace applicare l'algoritmo di horner opportunamente modificato:

int hash(char *chiave)
    {
       int indice=0, base=128;
       for(;*chiave!='\0';chiave++)
       indice=(base*indice+*chiave)%DIM_TABELLA;
       return indice;
    }

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000