Liste multiplu inlantuite. Structuri multilista
P1. Sa se implementeze un dictionar de sinonime, folosind urmatoarea structura de date:
toate cuvintele se pastreaza intr-o lista ordonata alfabetic, simplu inlantuita, iar cuvintele
apartinand aceluiasi grup de sinonime sunt inlantuite circular intre ele, folosind un
pointer de inlantuire secundara .
Exemplu: Figura prezinta structura pentru un dictionar cu 6 cuvinte, care are 3 grupe de
sinonime: una formata din 3 cuvinte, una cu un singur cuvant si una cu 2 cuvinte.
Sa se implementeze operatiile:
- AdaugaCuv(cuvant) - adauga un nou cuvant, care nu are alte sinonime in dictionar
pina in acel moment
- AdaugaSinonim(cuvant1, cuvant2) - adauga un nou cuvant, cuvant1, specificand
prin al doilea parametru grupul de sinonime caruia ii apartine (cuvant2 exista deja in
dictionar)
- AfiseazaSinonime(cuvant) - afiseaza toate sinonimele cuvantului
- TestSinonimie(cuvant1, cuvant2) -> boolean testeaza daca cele 2 cuvinte sunt sau
nu sinonime
- DefinesteSinonimie(cuvant1, cuvant2) - defineste o noua relatie de sinonimie intre 2
cuvinte care exista deja in dictionar, dar care nu figureaza ca sinonime intre ele
(fiecare cuvant a avut grupul sau distinct de sinonime)
- StergeCuvant(cuvant)
P2. Sa se descrie si sa se implementeze o structura de date adecvata (eficienta)
pentru memorarea operatiilor efectuate de un bibliotecar. Se vor avea in evidenta numai
informatiile din fisele cititorilor, nu si informatiile referitoare la fondul de carte al
bibliotecii. Biblioteca are in evidenta mai multi cititori, fiecare poate imprumuta oricate
carti doreste. Fiecarei carti imprumutate i se asociaza o valoare intreaga reprezentand
gradul de interes al cartii pentru cititor. Fiecare cititor specizeaza interesul fata de o
anumita carte in momentul imprumutului cartii. Restituirea cartilor se face numai in
ordinea inversa a interesului prezentat de acestea (cele mai putin interesante se returneaza
primele).
Se vor implementa urmatoarele operatii:
- InitializeazaBiblioteca - initializeaza biblioteca, cu zero cititori
- AdaugaCititor(Nume) - adauga un cititor, care inca nu detine nici o carte
- RetrageCititor(Nume) - scoate din evidenta un cititor si toate cartile sale
- ImprumutaCarte(Nume, TitluCarte, InteresCarte)
- RestituieCarte(Nume) -> TitluCarte cititorul Nume restituie o carte, functia
va alege cartea de interes minim pentru cititor, o sterge din evidenta si ii
returneaza numele
- ListeazaCarti(Nume) - afiseaza toate cartile detinute de Nume, in ordinea
descrescatoare a gradului lor de interes
P3. Sa se descrie si sa se implementeze o structura de date adecvata(eficienta)
memorarii tranzactiilor comerciale ale clientilor unui contabil. Se vor implementa
urmatoarele operatii:
- Initializare - se initializeaza structura de date, cu zero clienti
- AdaugaClient(Nume)
- InregistreazaVenit(Nume, suma, data)
- InregistreazaCheltuiala(Nume, suma, data)
- ListeazaSituatie - listeaza situatia financiara a tuturor clientilor, in ordinea
alfabetica a numelor acestora, pentru fiecare nume precizandu-se valoarea
datoriilor sale (cheltuieli - venituri) sau a economiilor sale (venituri -
cheltuieli)
- ListeazaVenituri(Nume) - listeaza veniturile realizate de Nume, in ordine
cronologica
- UltimaCheltuiala(Nume) - listeaza valoarea celei mai recente cheltuieli
facute de Nume