Professional Documents
Culture Documents
Lista
Lista je konačni niz (od nula ili više) podataka istog ili
različitog tipa
Lista je linearna struktura
Podaci koji čine listu nazivaju se njeni elementi
U teoretskim razmatranjima listu obično bilježimo
ovako:
(a1, a2, . . . ,an).
Ovdje je n >0, tzv. duljina liste. Ako je n = 0, kažemo
da je lista prazna.
Lista (2)
Za svaki n > 1, a1 je prvi element, a2 drugi, . . ., ai i-ti
element, an zadnji element
Zbog linearnog svojstva liste možemo reći da je ai
prethodnik elementa ai+1 i sljedbenik elementa ai-1
Moguće je da su neki od elemenata liste jednaki
Identitet elementa određen je njegovom pozicijom
(rednim brojem), a ne njegovom vrijednošću
Elementi liste su linearno uređeni s obzirom na svoju
poziciju
Liste možemo implementirati statički, pomoću polja
(engl. array), ili dinamički, pomoću pokazivača
(povezane liste)
Implementacija liste pomoću polja
polje je statička struktura, što znači da se kapacitet treba
definirati unaprijed i kasnije se ne može mijenjati
jedna od jednostavnijih implementacija liste
polje je neprekidni dio memorije koji je podijeljen na n
jednakih dijelova
elemente liste jednostavno redom spremimo u polje
na taj se način redoslijed elemenata u listi podudara s
fizičkim redoslijedom elemenata u memoriji
uz polje za implementaciju liste koristi se i jedan
brojač u koji se sprema broj elemenata u listi
Implementacija liste pomoću polja
(2)
Svi elementi polja su istog podatkovnog tipa, te zbog
toga zauzimaju istu količinu memorije.
lista.reverse() O(n)
lista.sort() O(n log n)
Nedostaci implementacije poljem
ograničenje veličinom polja koja se mora unaprijed
zadati (statičko polje)
uvijek je u memoriji rezerviran prostor za maksimalnu
duljinu liste, bez obzira bila lista puna, prazna ili
poluprazna
ubacivanja i brisanja traju dugo zbog potrebe za
pomicanjem preostalih elemenata
Polje u Pythonu
Polje je implementirano u Python-u upotrebom
array modula
from array import array
a=array(‘i’,[1,2,3,4,5])
a) O(n)
b) O (1)
c) O(n log n)
d) O(log n)
Zadatak 2
Zadnji čvor linearno povezane liste:
a) Vrh liste
b) Poveznica čvora
c) Poveznica liste
d) Glava liste