Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

PJESA E DYTË

STRUKTURAT E TË DHËNAVE

Informacioni që përpunohet në një kompjuter mund të jetë i organizuar në forma të ndryshme, që


varen në përgjithësi nga natyra e problemit që do të zgjidhet. Krahas problemeve numerike kemi
dhe probleme jonumerike që kryejnë përpunime mbi vargje shenjash alfa-numerike, si skema
fluksesh, grafesh etj.Të dhënat paraqiten pra të strukturuara në forma të ndryshme për secilën
prej tyre është e nevojshme të përcaktohet një paraqitje e brendshme në kompjuter që të jetë e
përshtatshme për përpunimet që do të kryhen dhe për shkëmbimin e informacionit me mjedisin e
jashtëm.

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

Pasi të kemi parë strukturat informative të brendshme më të rëndësishme vektorët, listat e


thjeshta dhe shumëfishe do të kemi mundësi të diskutojmë mbi paraqitjen në memorie të
strukturave abstrakte.

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.

Struktura e brendshme më e thjeshtë është vektori të cilin e përcaktojmë si një bashkësi


elementesh fqinj të memories. Në qoftë se secili element zë vetëm një qelizë të memories atëherë
ato karakterizohen nga adresa të njëpasnjëshme (fig 2.1). Në qoftë se elementi zë d fjalë, adresat
e elementeve kanë largësi d ndërmjet tyre. Është e mundur gjithashtu që në një qelizë të
vendosen disa elemente.

0 100
1 35
V [0, 5, 1] 2 140
3 -50
4 60

Parametrat që karakterizojnë vektorin V janë :

- adresa ab e elementit të parë që quhet adresa bazë e vektorit


- numri m i elementëve të tij, që quhet gjatësi e vektorit
- përmasa d e një elementi i matur në numër qelizash (ose në fraksione të qelizës)

Për të karakterizuar në mënyrë të plotë pozicionin e vektorit V në memorie do të shkruajmë:

V ( ab , m, d)

Elementi i përgjithshëm do të tregohet me V(I), I = 1, 2, 3, ….. ,m dhe adresa e tij në


memorie do të jetë:

adresa V ( I ) =ab + d ( I – 1 ) (2.1)


Gjatësia m e vektorit duhet të fiksohet në çastin e ndërtimit të vektorit dhe në përgjithësi nuk
mund të ndryshojë më tutje. Vektori është një strukturë e ngurtë e përshtatshme për të
mbajtur një seri të dhënash, numri i të cilave njihet më parë, ose për të cilin mund të
parashikohet afërsisht një kufi i sipërm.

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 (Hi ), adresën e qelizës së parë të elementit Hi


INF(Hi), përmbajtjen e zonës së parë të elementit Hi
TREG (Hi), përmbajtjen e zonës së dytë të Hi
Për të lexuar përmbajtjen e një elementi çfarëdo të listës duhet të kryhet shqyrtimi i listës
element pas elementi. Duke shënuar me Hi elementin e parë, shqyrtimi bazohet në shprehjet e
mëposhtme:

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)=Ø ?

para se të kalohet te elementi Hi+1.

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:

1. TREG (K) adr(Hi+1)


2. TREG (Hi) adr (K)

Veprimi i parë që lidh elementin K me elementin Hi+1 në të vërtetë do të kryhet si:

1. K TREG (K) TREG (Hi)

gjë që kërkon kryerjen e veprimeve sipas rendit të treguar në A.

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.

TREG (Hi-1) adr (Hi+1) (2.3)

që do të bëhet si:

TREG (Hi-1) TREG (Hi) (2.4)

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

Që këtej del e domosdoshme që të përpunohet ndonjë metodë për administrimin e memories së


lirë, të përbërë fizikisht nga qelizat e lira. Një ndër këto metoda qëndron në formimin e listës së
lirë që përmban të gjitha qelizat e memories të lira. Në këtë mënyrë dhe kjo pjesë e memories
administrohet si listat e lira. Duke supozuar që elementet e listave të përdorura kanë të njejtin
numër (S+1) qelizash del se dhe lista e lirë do t’i ketë elementet me të njëjtat përmasa.

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:

tndih TREG (Hi-1)

TREG (Hi-1) TREG(Hi)

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.

3. LISTAT CIKLIKE DHE LISTAT DYDREJTIMËSHE

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

Në listat dydrejtimëshe secili element Hi ka përveç zonës së informacionit, dy zona të tjera që


përmbajnë përkatësisht treguesit e elementeve Hi-1 dhe Hi+1. Shqyrtimi i listës mund të fillojë si
nga njëri skaj ashtu dhe nga tjetri, nëpërmjet dy treguesve t 0 dhe ti. Këto lista përdoren për
memorizimin e strukturave abstrakte që kërkojnë përpunimin alternativ të elementeve që
ndodhen në skaje.

Ø
t0 t1

Fig. 2.8

Si përfundim listat ofrojnë këto avantazhe:


 memorizim kompakt të të dhënave, numri i të cilave nuk njihet sipas një rendi të
dëshiruar
 veprimet e futjes dhe eleminimit të të dhënave janë shumë të thjeshta

Megjithatë duhet të përmendim disavantazhet e mëposhtme:


 shpenzim i memories për shkak të përdorimit të zonës për treguesit
 çdo veprim do të shoqërohet me azhornimin e listës së lirë
 për të arritur një element të listës duhet të kryhet shqyrtimi i saj
4.LISTAT SHUMËFISHE

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

You might also like