Abstraktsed andmetüübid (ADT), staatilised ja dünaamilised andmestruktuurid. Ahel (list), ahelate liigid.
Abstraktsed andmetüübid
"Varajane" OOP. Eesmärk: peita realisatsiooni detailid, anda rakenduse programmeerijale probleemorienteeritud liides.
ADT - Abstract Data Type
1. Lubatud väärtuste hulk (väärtusvaru)
2. Lubatud operatsioonide hulk
3. (Notatsioon - tähistused väärtuste ja operatsioonide jaoks)
Näit. kompleksarvud, polünoomid, graafid, geomeetrilised kujundid, ...
OOP muutis niisuguse lähenemise kohustuslikuks.
Väärtusvaru järgi jagunemine:
1. lihttüübid, mille väärtustel ei ole sisemist struktuuri: arv, tõeväärtus, ...
2. struktuursed tüübid, mille väärtus koosneb komponentidest: massiiv, objekt (kirje), ...
Operatsioonid on OOP-s "kinnistatud" objekti juurde (kapseldus).
1. Kinnised operatsioonid: tulemus kuulub sama tüübi väärtusvarusse
2. mittekinnised operatsioonid: tulemus on mingit teist tüüpi
3. tüübiteisendused: tegelikud ja deklaratiivsed
Näit. kinnine operatsioon "summa" (mis iganes see ka poleks)
Imperatiivne lähenemine: m = summa (a, b) "funktsiooni summa parameetriteks on a ja b"
OOP lähenemine: m = a.summa (b) "objektile a saadetakse teade 'summa' parameetriga b"
Andmestruktuurid võib jagada:
1. staatilised: komponentide arv ja tüübid fikseeritud: näiteks kompleksarv
2. dünaamilised: väärtuse komponentide arv on muutuv, komponendid ise tavaliselt üht tüüpi: näiteks magasin, järjekord, graaf, ...
Andmestruktuuride korral on oluliseks küsimuseks juurdepääsu tagamine komponentidele ning struktuuri muutmine (vastavate operatsioonide ajaline keerukus).
"Võtmine" ja "lisamine".