-
Notifications
You must be signed in to change notification settings - Fork 0
Journeyman174/Tabele-hash
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# Tabele-hash Programul creaza o tabela de dispersie-hashtable reprezentat ca un vector cu M elemente(bucket-uri). Fiecare bucket este reprezentat printr-o lista dublu inlantuita generica. Elementele din liste sunt de forma (Key,Value), respectiv numele paginii web si adresa IP, structura TSite(nume, ip). Functia hashf calculeaza indexul ca fiind restul impartirii sumei caracterelor ce fac parte din cheile stocate in liste (nume site), la M. Dupa lansarea in executie a programului se prelucreaza argumentul 1-M(nr de bucket-uri din tabela hash), se deschide in citire in mod text fisierul de intrate hash.in si se deschide in scriere fisierul de iesire hash.out . Formatul fisierelor de intrare si de iesire este indicat in cerinta temei. Programul principal consta intr-o bucla while care citeste linie cu linie fisierul de intrare analizand fiecare linie. Setul de operatii *cmd1, ... , *cmd6 este identificat prin parsarea liniei de intrare, caracterul <space> . La sfarsitul programului se elibereaza memoria alocata buffer-ului de citire din fisierul de intrare precum si tabelei de dispersie si listelor duble. Pentru fiecare operatie s-a creat o functie de implementare, tabela hash la inceput fiind vida. Functia put realizeaza operatia de adaugare a perechii (nume, ip) in lista corespunzator indexului calculat de functia hashf. Mai intai, se verifica daca exista in tabela cu functia ExistaTH, elementul de adaugat. Daca acesta exista, nu va mai fi adaugat. Parametrii de apel a functiei put sunt : h, key, val, M, ordSite; ordSite este functia care insereaza elementul ordonat crescator dupa cheia nume, in lista. Functia get implementeaza operatia get. Dupa calcularea indexului si identificarea bucket-ului intoarce NULL, daca numele site-ului nu exista, altfel afiseaza IP-ul site-ului. Functia elimin corespunzatoare operatiei remove sterge perechea (nume, ip) din hash table pe baza numelui primit ca parametru al functiei si elibereaza memoria alocata celulei. Operatia find este realizata prin utilizarea functie ExistaTH. Daca elementul nume exista, se afiseaza adevarat, altfel fals. Functia print afiseaza toate IP-urile din tabela hash. Functia print bucketa afiseaza bucket-ul corespunzator indicelui furnizat ca paramentru.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published