Professional Documents
Culture Documents
Viii - Strukturat e Të Dhënave
Viii - Strukturat e Të Dhënave
STRUKTURAT E TË DHËNAVE
Që këtej lind termi i strukturës informative që ka të bëjë me strukturat abstrakte dmth të vetë
problemit dhe që varen vetëm nga problemi, dhe me strukturat e brendshme në memorie. Këto të
fundit kanë të bëjnë me strukturat e qelizave (fjalëve) që përmbajnë informacionin dhe me grupin
e rregullave për krijimin e lidhjeve të këtyre qelizave.
Strukturat abstrakte dhe të brendshme ndikojnë te njëra – tjetra. Me element të një strukture do të
nënkuptojmë të dhënat apo blloqet e të dhënave që përbëjnë pjeset e pandashme prej të cilave
është ndërtuar struktura.
KAPITULLI I
STRUKTURAT INFORMATIVE TË BRENDSHME
1.Vektorët
Meqenëse strukturat e brendshme formohen nga qelizat e memories format e tyre varen
pjesërisht nga karakteristikat e përbashkëta te memories qëndrore të kompjuterave. Kjo memorie
është një bashkësi e renditur fjalësh të përcaktuara nga adresa të njëpasnjëshme. Mbi këtë
organizim shumë të thjeshtë të memories, mbivendosen struktura të brendshme të stërholluara, të
ndërtuara me anë të programeve që i japin mundësi përdoruesit të përdorë makinën sikur këto
struktura të ishin të vetë memories.
0 100
1 35
V [0, 5, 1] 2 140
3 -50
4 60
V ( ab , m, d)
2. LISTAT E THJESHTA
Shqyrtojmë një vektor të renditur elementesh (fig 2.2 a). Supozojmë se duam të futim një
element të ri psh 45, duke ruajtur renditjen. Për këtë duhet të zhvendosim të gjithë elementët
më të mëdha se elementi i ri 45 me një pozicion ( fig 2,2 b).
20 20 20
40 35 35
50 40 40
60 50 45
85 60 50
85 60
90
c) a) b)
Fig 2,2 a, b, c
Supozojmë se duam të eleminojmë një element nga vektori psh elementin 35. Për këtë duhet
të zhvendosim të gjitha elementet më të mëdha se 35 me një pozicion (fig 2.2 c). Për futjen
dhe eleminimin e një elementi në vektor duhet të bëjmë një sërë zhvendosjesh të
informacionit, gjë që harxhon shumë kohë. Le të shikojmë një mënyrë tjeter organizimi të
elementëve (listën) që lehtëson shumë operacionet e futjes dhe eleminimit të një elementi.
Lista është një varg elementesh ku secili element përmban përveç të dhënave dhe një tregues
adrese, që jep adresën e elementit pasardhës në listë. Në figurën 2.3 paraqiten elementët e
vektorit (fig 2,2a) të memorizuar me tregues. Elementi i fundit i listës në vend të treguesit ka
shenjën Ø.
1 20 2
2 35 3
3 40 4
4 50 5
5 60 6
6 85 Ø
Fig. 2.3
Listat zakonisht paraqiten si në figurën 2.4, secili element Hi lidhet me elementin pasardhës
(sipas renditjes) me anë të një treguesi që tregon adresën e elementit Hi+1. Në këtë mënyrë Hi
do të jetë i formuar nga dy zona: zona e parë do të përmbajë informacionin që i është caktuar
elementit Hi, zona e dytë do të përmbajë adresën e Hi+1 . Mekanizmi i treguesve paraqitet me
anë të shigjetave.
Hi Hi+1
t0
20 35 40 50 Ø
Fig. 2.4
Adresimi i listës bëhet nëpërmjet treguesit t0 që adreson elementin e parë të listës. Përmasat
e elementëve të listës varen nga informacionet që duhet të përmbajnë. Zona e parë e
elementit përbëhet nga S qeliza (S ≥ 1) ndërsa në zonën e dytë zakonisht mjafton një qelizë e
vetme. Sidoqoftë (S + 1) qelizat e elementit duhet të jenë fqinje. Ndodh që një element
vendoset në një qelizë të vetme të memories. Le të shikojmë veprimet e ndryshme që mund
të kryhen mbi një listë. Për këtë shënojmë:
adr ( H i ) =t 0 ( 2.2)
adr (H i+1)=TREG(H i )
ku duke ditur adresën e Hi,vlera TREG (Hi) është përmbajtja e qelizës me adresë (Hi) + S.
Shqyrtimi i listës përfundon zakonisht kur është kaluar në një numër të caktuar elementësh, dmth
kur kemi arritur në elementin e i–të ose pasi është lexuar informacioni i dëshiruar (në zonën e
parë të një elementi). Meqenëse lista mund të përfundojë më parë se të plotësohen këto kërkesa
është e nevojshme që në çdo hap të bëhet pyetja:
TREG( H i)=Ø ?
Për të futur një element të ri K ndërmjet elementëve H i dhe Hi+1 të listës duhet të kryhen këto
veprime:
Pra futja e një elementi kërkon kryerjen e shqyrtimit të listës derisa të arrihet elementi H i. Adresa
e elementit të ri K njihet para se ai të futet në listë, por mbasi ai është futur, arritja e tij bëhet e
mundur vetëm nëpërmjet shqyrtimit të listës. Si rrjedhim është e përshtatshme që informacioni i
duhur të shkruhet në INF (K) para se elementi K të futet në listë (fig 2.5 a). Heqja e një elementi
H nga lista kërkon shqyrtimin e listës deri në elementin Hi-1 dhe pastaj kryerjen e veprimit.
që do të bëhet si:
Vëmë re se pas kryerjes së këtij veprimi, elementët dalin të lidhura si në figurën 2.5 b. Meqenëse
elementi i ri Hi është ende i lidhur me elementin Hi+1 ai nuk takohet më gjatë shqyrtimit të listës,
meqenëse adresa e tij ndodhej me pare ne TREG (H i-1) ka humbur. Si rrjedhim (S + 1) qelizat e
memories së elementit Hi mbeten të papërdorshme, gjë që nuk na intereson aspak. Numri i këtyre
qelizave të lira mund të rritet shumë gjatë përpunimit të listës.
Hi Hi+1 Hi =1 Hi Hi+1
(a) (b)
Fig. 2.5
Hi-1 Hi Hi+1
t0
t1 lista e lire
Fig. 2.6
Lista e lirë mund të adresohet me anë të treguesit ti. Nga kjo listë merren elementët e nevojshëm
të përdorur sipas rastit dhe në të futen elementët e panevojshme. Elementi që merret ose futet në
listën e lirë do të jetë elementi i parë i saj, duke mënjanuar në këtë mënyrë shqyrtimin e vetë
listës.Duke përdorur këtë teknikë, eleminimi i një elementi Hi nga lista bëhet nëpërmjet
veprimeve të mëposhtme:
TREG(Hi) ti
ti tndih
Përdorimi i listës me elemente me përmasa të ndryshme është më i ndërlikuar se rasti i shqyrtuar.
Listat e para deri tani quhen lista të thjeshta ose lineare meqenëse elementet lidhen ndërmjet tyre
sipas një përmase të vetme. Duke bërë modifikime të vogla në skemat e listave të mësipërme
fitohen dy tipe të tjera listash, listat ciklike dhe listat dydrejtimshe.
Në listat ciklike shenja Ø e përfundimit të listës zëvendësohet me një tregues që tregon adresën e
elementit të parë të listës (fig 2.7). Procesi i shqyrtimit të listës mund të vazhdojë automatikisht
në mënyrë ciklike. Në rastin e strukturave abstrakte që kërkojnë shqyrtim të informacionit
memorizimi sipas listës ciklike paraqet epërsinë e eleminimit të pyetjes së mbarimit të listës.
t0
Fig. 2.7
Ø
t0 t1
Fig. 2.8
Megjithëse lista e thjeshtë është një strukturë me rëndësi të veçantë, ajo nuk është e përshtatshme
të modelojë struktura abstrakte komplekse. Një vështirësi e parë lind kur elementet, megjithëse të
renditura sipas një liste, kanë përmasa të ndryshme ndërmjet tyre. Në këtë rast, për të mos i bërë
të gjitha elementet të barabarta me më të madhin, duke lënë në këtë mënyrë shumë qeliza të
papërdorura, mundet që të shtohet një zonë në fillim të çdo elementi që të tregojë gjatësinë e vetë
elementit. Megjithatë edhe kjo nuk përbën një zgjidhje të kënaqshme, p.sh kur struktura e
informacionit që i përgjigjet një elementi bëhet më e ndërlikuar dhe nuk mund të memorizohet
në një zonë të elementit.
Në këtë rast i drejtohemi listës shumëfishe. Ajo është një listë elementesh, zona e parë e të cilave
në vend që të përmbajë të gjithë informacionin, përmban treguesin e një strukture ku ndodhet
informacioni. Në këtë mënyrë fitohet një listë strukturash të cilat nga ana e tyre mund të
përmbajnë tregues duke krijuar një strukturë të përgjithshme të degëzuar. Në të vërtetë flitet për
një listë shumëfishe atëherë dhe vetëm atëherë kur teknika e treguesve përdoret jo vetëm sipas
një përmase të vetme. Supozojmë se duhet të plotësohet një listë të ftuarish a, b,….. në formë të
tillë që të lejojë futjen ose heqjen e personave që nuk vijnë. Lista e thjeshtë do të ishte e
përshtatshme në qoftë se nuk do të merrnim parasysh ardhjen e miqve, që secili i ftuar mund të
sillte me vete. Këtu secili i ftuar “r” i vemë në dispozicion një listë miqsh r 1, r2,…..rp. Struktura e
fituar fig 2.9, qëndron në një listë listash:
t0
a b δ Ø
a1 a2 aα Ø
b1 b2 bβ Ø
δ1 δ2 δδ Ø
Fig. 2.9