Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:laboratoare:laborator-07 [2015/04/07 22:19]
cosmin_ioan.petrisor [Implementarea cu liste înlănțuite]
sd-ca:laboratoare:laborator-07 [2015/05/09 16:47] (current)
cosmin_ioan.petrisor [Exerciţii]
Line 133: Line 133:
  
 2) [**1p**] Testați implementarea voastră folosind un cod simplist. 2) [**1p**] Testați implementarea voastră folosind un cod simplist.
- 
  
 <​hidden>​ <​hidden>​
Line 192: Line 191:
    * [**0.5p**] TODO 2: definiţi funcţia hash pentru clasa String    * [**0.5p**] TODO 2: definiţi funcţia hash pentru clasa String
    * [**1.5p**] TODO 3: rezolvaţi problema folosind un Hashtable cu cheie de tip String.    * [**1.5p**] TODO 3: rezolvaţi problema folosind un Hashtable cu cheie de tip String.
- 
-4) [**Bonus 1p**] Implementați și testați redimensionarea unui hashtable: funcția **resize()** dublează dimensiunea structurii interne a tabelei de dispersie. Dublarea se va face în momentul în care raportul dintre numărul de elemente introduse în hashtable **size** şi numărul de bucket-uri **HMAX** este mai mare decât o valoare aleasă (**size** / **HMAX** > 0.75). Comportamentul dorit pentru această funcţionalitate este următorul: se redimensionează array-ul de bucket-uri, iar apoi fiecare bucket este parcus în ordine și elementele sunt redistribuite după valoarea noului hash. 
-</​hidden>​ 
  
 3) [**3p**] O aplicatie a unui hashtable este reprezentată de stocarea parolelor unor utilizatori în vederea autentificării într-un sistem. Considerăm un fişier text **password.dat** ce conţine pe fiecare linie o pereche de şiruri de caractere reprezentând numele utilizatorului şi parola sa. După citirea şi stocarea parolelor, programul va citi de la tastatură numele utilizatorului ce doreşte să se autentifice,​ precum şi parola sa. Dacă parola este cea aferentă utilizatorului,​ se va afişa un mesaj de tipul "​Authentication successful",​ iar în caz contrar, se va afişa "​Authentication failure"​. 3) [**3p**] O aplicatie a unui hashtable este reprezentată de stocarea parolelor unor utilizatori în vederea autentificării într-un sistem. Considerăm un fişier text **password.dat** ce conţine pe fiecare linie o pereche de şiruri de caractere reprezentând numele utilizatorului şi parola sa. După citirea şi stocarea parolelor, programul va citi de la tastatură numele utilizatorului ce doreşte să se autentifice,​ precum şi parola sa. Dacă parola este cea aferentă utilizatorului,​ se va afişa un mesaj de tipul "​Authentication successful",​ iar în caz contrar, se va afişa "​Authentication failure"​.
Line 220: Line 216:
    * [**0.5p**] TODO 2: definiţi funcţia hash pentru clasa String    * [**0.5p**] TODO 2: definiţi funcţia hash pentru clasa String
    * [**1.5p**] TODO 3: rezolvaţi problema folosind un Hashtable cu cheie de tip String.    * [**1.5p**] TODO 3: rezolvaţi problema folosind un Hashtable cu cheie de tip String.
 +
 +4) [**Bonus 1p**] Implementați și testați redimensionarea unui hashtable: funcția **resize()** dublează dimensiunea structurii interne a tabelei de dispersie. Dublarea se va face în momentul în care raportul dintre numărul de elemente introduse în hashtable **size** şi numărul de bucket-uri **HMAX** este mai mare decât o valoare aleasă (**size** / **HMAX** > 0.75). Comportamentul dorit pentru această funcţionalitate este următorul: se redimensionează array-ul de bucket-uri, iar apoi fiecare bucket este parcus în ordine și elementele sunt redistribuite după valoarea noului hash.
 +</​hidden>​
 ===== Interviu ===== ===== Interviu =====
 Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship,​ part-time, full-time, etc.) din materia prezentată în cadrul laboratorului. Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship,​ part-time, full-time, etc.) din materia prezentată în cadrul laboratorului.
Line 241: Line 240:
  
 [6] [[http://​www.cs.usfca.edu/​~galles/​visualization/​ClosedHashBucket.html|Closed Hashing (Buckets) Visualization]] [6] [[http://​www.cs.usfca.edu/​~galles/​visualization/​ClosedHashBucket.html|Closed Hashing (Buckets) Visualization]]
 +
 +[7] [[http://​www.cse.yorku.ca/​~oz/​hash.html|Collection of hash functions]]
sd-ca/laboratoare/laborator-07.1428434379.txt.gz · Last modified: 2015/04/07 22:19 by cosmin_ioan.petrisor
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0