Structuri de Date - Curs 5

Extras din curs:

Daca intr-o aplicatie se lucreaza cu liste ale caror elemente sunt de un singur tip, acesta se defineste ca TEL in TLISTA.H.

Pot exista insa situatii in care in aceeasi aplicatie se lucreaza cu mai multe liste, cu elemente de tipuri diferite (de exemplu lista de materii si liste de studenti).

In aceste situatii operatiile de baza asupra listelor sunt aceleasi, dar modul de tratare a partii de informatie difera, fiind strict legat de tipul elementelor din lista prelucrata la un moment dat.

Pentru a rezolva aceste situatii vom defini tipul “lista generica”, care face abstractie de tipul elementelor concrete.

Intr-o zona de memorie gestionata de utilizator

- la crearea celulei trebuie cunoscuta adresa zonei in care se gaseste valoarea elementului

In celula din lista

- la crearea celulei trebuie cunoscute:

dimensiunea elementului (D)

adresa de unde se preia valoarea acestuia

In ambele variante de memorare a elementelor adresele necesare sunt adresele unor elemente de tip necunoscut in momentul definirii tipului lista generica, deci vor fi declarate void*, urmand ca la nivelul aplicatiei sa fie convertite la tipul corespunzator.

In varianta a. campul info este adresa de element, deci de tip void*.

In varianta b. tipul si dimensiunea campului info sunt dependente de aplicatie, dar, pentru uniformitatea reprezentarii, acest camp poate fi declarat tot de tip void*.

typedef struct celg

{ struct celg *urm; /* adresa urmatoarei celule */

void *info; /* informatie */

} TCelg, *TLG, **ALG;

/* tipuri: Celula, Lista si Adresa_Lista Generica */

#define VidaL(L) ((L) == NULL)

typedef int (*TF1)(void*,...);

/* functie prelucrare un element */

typedef int (*TF2)(void*, void*);

/* functie prelucrare doua elemente */

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Structuri de Date - Curs 5.ppt
Alte informații:
Tipuri fișiere:
ppt
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
18 pagini
Marime:
57.33KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Sisteme de Operare
Predat:
la facultate
Materie:
Sisteme de Operare
Profesorului:
F. Kalisz
Sus!