4 tema. Duomenų struktūros • Paprastieji: Paprastųjų duomenų pagrindinis požymis- vienas vardas viena reikšmė Sveikieji skaičiai; Realieji skaičiai; Tekstiniai duomenys (rašmenys); Loginiai duomenys; • Struktūriniai: – tiesinės struktūros; –
Download ReportTranscript 4 tema. Duomenų struktūros • Paprastieji: Paprastųjų duomenų pagrindinis požymis- vienas vardas viena reikšmė Sveikieji skaičiai; Realieji skaičiai; Tekstiniai duomenys (rašmenys); Loginiai duomenys; • Struktūriniai: – tiesinės struktūros; –
Slide 1
4 tema. Duomenų struktūros
• Paprastieji:
Paprastųjų duomenų pagrindinis požymis- vienas vardas viena reikšmė
Sveikieji skaičiai;
Realieji skaičiai;
Tekstiniai duomenys (rašmenys);
Loginiai duomenys;
• Struktūriniai:
– tiesinės struktūros;
– hierarcinės struktūros.
1
Slide 2
Sveikieji skaičiai
• sudėties (+),
• atimties (-);
• daugybos (*) operacijos.
1) sveikosios dalies nustatymas, dalijant vieną iš kito;
2) liekanos nustatymas dalijant vieną skaičių iš kito.
Skaičiaus dydžio intervalas.
1 baitas [0, 255], 2 baitai [-32768, +32767],
4 baitai [-2147483648, + 2147483647] ar 12 baitų[28 ženklai]
Didžiausiam sveikajam skaičiui M+∞ ir mažiausiam neigiamam skaičiui
M-∞ galioja lygybės:
M+∞+1=M-∞ , pvz: 0111111 (+127) + 1 = 1111111 (-127)
M-∞-1=M+∞ ,
2
Slide 3
Realieji skaičiai
• sudėties (+), atimties(-),
• daugybos (*) ir dalybos (/)
operacijos kaip ir su matematiniais realiaisiais skaičiais.
Visos operacijos kompiuteryje atliekamos su tam tikru tikslumu:
1/3 standartiniu 4 baitų realiuoju skaičiumi bus 0,3333333,
o matematikoje tiksli 1/3 išraiška - begalinė dešimtainė trupmena.
Pagal tikslumo poreikį:
4 baitų [ 6-7 ženklai po kablelio],
8 baitų [15-16 ženklų po kablelio],
16 baitų [36 ženklai].
Fiksuotam tikslumui reikia naudoti apvalinimo funkciją
ROUND(išraiška;kiek skaičių po kablelio) arba meniu Tools/Options
kortelėje Calculation pažymėti nuorodą Precision as displayed.
3
Slide 4
Tekstiniai ir loginiai duomenys
Pagrindinė tekstinių duomenų (rašmenų) savybė - jų sutvarkymas,
t.y. savybė būti palyginamiems. Paprastai tai “a” < ”b”, “b” < “c” ir t.t.
Kiekvienas simbolis turi skaitmeninį kodą, pagal kuriuos ir atliekamas
lyginimas.
Naudojamas ir atskiras tekstinių duomenų tipas - eilutė (string), kurią
sudaro rašmenų rinkinys.
Eilutės tipo duomenys turi vieną operaciją - susijungimą
(konkatenciją).
Pvz.: ‘abcd’ & ‘efg’=’abcdefg’.
Loginiams duomenims, įgaunantiems tik reikšmę “teisinga” arba
“klaidinga” taikomi visi logikos algebros veiksmai. Loginės konstantos
paprastai žymimos žodžiais TRUE (teisinga) ir FALSE (klaidinga),
loginės operacijos: disjunkcija – OR, konjunkcija – AND.
4
Slide 5
Struktūriniai duomenų tipai
• tiesinės struktūros;
– Masyvai;
– Sąrašai (įrašai);
•
•
•
•
Rodyklės;
Nepertraukiamieji sąrašai;
Susietieji sąrašai;
Įrašai;
– Stekai;
– Eilės;
• hierarchinės struktūros;
– Medžio tipo struktūros;
• Binariniai medžiai.
5
Slide 6
Masyvai
Masyvas - tai vieno tipo duomenų rinkinys.
Visi masyvo elementai turi tą patį vardą ir skiriasi tik savo indeksu.
Pagal indeksą galime kreiptis į bet kurį masyvo elementą tiesiogiai ir naudoti
jį kaip pavienį duomenį.
0.5
4.7
…
A1
A2
…
A(1) A(2)
…
7.2
0.8
A3
A4
A(3)
A(4)
B = A(1) + A(3)
Masyvo elementai gali būti ne tik paprastųjų tipų, bet ir struktūriniai
arba kiti masyvai. Tada turime daugiamatį masyvą.
6
Slide 7
Įrašai
Aprašant ūkinės veiklos procesus dažnai tenka naudoti skirtingų tipų
duomenis, tada jų rinkinys sudaro įrašą (record).
Įrašas - tai įvardintų komponentų - laukų rinkinys, turintis
bendrą vardą.
Į kiekvieną įrašo lauką galime kreiptis įrašo bei lauko vardu; pvz.:
turime įrašą:
Įrašas B
Detalė
Nr.
Ilgis
Varžtas
16
35,6
B. Detalė
CHAR
B. Nr. B. Ilgis
INT
REAL
Ir masyve, ir įraše galima tiesiogiai kreiptis į konkretų elementą.
Įrašuose gali būti skirtingi duomenų tipai, o masyvų elementų
indeksacija yra lankstesnė, nes leidžia apskaičiuoti reikalingą indeksą.7
Slide 8
Sąrašai
Įrašų rinkiniai sudaro sąrašus.
Kuriant bet kokią duomenų struktūrą reikia spręsti tokius uždavinius:
• kaip atskirti duomenų elementus tarp savęs,
• kaip ieškoti reikalingų elementų,
• kaip pridėti ar pašalinti atskirus sąrašo elementus, išlaikant jų
surikiavimo tvarką.
Sąrašo įrašai atskiriami vienas nuo kito nustatant jiems pastovų ilgį, to paties tipo
DE užima atmintyje vienodą baitų kiekį.
Sudarydami sąrašo įrašo struktūrą nurodome jį sudarančių DE bazinį tipą ir ilgį.
Pavyzdžiui, sąrašo apie detales struktūra gali būti aprašyta taip:
Detalė
Nr.
Ilgis
CHAR*20
INT*2
REAL*4
Varžtas
16
35,6
Tokio sąrašo įrašas užims 26
baitus atminties ir, pvz., 15-os
detalės ilgį rasime prie sąrašo 15to įrašo adreso pridėję 22.
8
Slide 9
Sąrašai (2)
Priklausomai nuo įrašų išdėstymo kompiuterio atmintyje, yra
skiriami:
• Vientisieji (nepertraukiamieji) sąrašai;
• Nuorodiniai (susietieji ) sąrašai.
Dažniausi veiksmai su sąrašais:
Sąrašo elementų papildymas ir pašalinimas norint išlaikyti
nustatytą jų surikiavimo tvarką.
Kaip tai padaryti, neperrašinėjant sąrašo kiekvienu atveju?
Duomenų išsidėstymas kompiuterio pagrindinėje atmintyje apibrėžiamas
skaitmeniniais adresais.
Jei žinomas kokio tai duomenų elemento (DE) adresas, tai rasti šį
elementą yra paprasta. DE buvimo adresą nurodo rodyklės.
Rodyklėmis (pointer) yra vadinamos atminties ląstelės, saugančios
kitos ląstelės adresą.
9
Slide 10
Rodyklės
Bibliotekos katalogas, surikiuotas pagal pavadinimus ir autorius,
panaudojant rodykles:
……
30
…
105
….
509
…
Atsisveikinimas su ginklais
E.Hemingvėjus
…
105
For whom the bell tolls
E.Hemingway
….
Senis ir jūra
E.Hemingvėjus
…
509
…
….
820
R
o
d
y
k
l
ė
s
…
10
Slide 11
Vientisieji (nepertraukiamieji) sąrašai
Taigi, kaip galima saugoti sąrašus kompiuterio atmintyje?
Vienas iš būdų – saugoti visą sąrašo turinį vieningame atminties ląstelių
bloke su nuosekliais adresais.
Jeigu vienam sąrašo elementui (eilutei) įrašyti skirsime M atminties
ląstelių (baitų), o tokių eilučių maksimaliai gali būti N, tai kompiuterio
atmintyje reikės rasti vientisą bloką iš M*N ląstelių. Tokia struktūra
vadinama vientisuoju sąrašu. Tai tipiška masyvo struktūra:
M ląstelių (baitų)
N įrašų
Ap
Ap+M
Ap+2M
......
11
Slide 12
Nuorodiniai (susietieji ) sąrašai
Nuorodiniame sąraše kiekvieno įrašo vieta atmintyje nereglamentuojama.
Toks įvairiose atminties vietose išmėtytas sąrašas susiejamas rodyklėmis.
Tada kiekvienam nuorodinio sąrašo elementui saugoti reikės M+1 ląstelių, ir
paskutinėje M+1 ląstelėje reikės saugoti rodyklę į kitą pagal rikiavimo
tvarką sąrašo elementą, t.y. to elemento pirmos ląstelės adresą.
Nuorodinis sąrašas visada prasideda sąrašo pradžios rodykle ir baigiamas
elementu su nulinės reikšmės rodykle (NIL):
Pradžios rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
NIL
12
Slide 13
Įrašo šalinimas nuorodiniame sąraše
Tam reikia tik pakeisti vieno atitinkamo įrašo rodyklės turinį:
Šalinamas įrašas
Pradžios rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
NIL
13
Slide 14
Įrašo įterpimas nuorodiniame sąraše
Naujas įrašas išsaugomas bet kurioje laisvos atminties srityje ir
modifikuojama tik atitinkamo įrašo pagal rikiavimo tvarką rodyklė,
suteikiant jos reikšmę naujo įrašo rodyklei:
Pradžios rodyklė
Naujas įrašas
Duomenys
Rodyklė
Duomenys
Duomenys
Rodyklė
Rodyklė
NIL
14
Slide 15
Stekas
Jeigu elementų įterpimo ir šalinimo operacijų naudojimo sritį apribosime
tik sąrašo galais, tai vientisojo sąrašo panaudojimas taps patrauklesnis.
Tokios duomenų struktūros pavyzdžiu gali būti stekas - sąrašas,
kuriame visi įterpimo ir šalinimo veiksmai atliekami viename gale, t.y.
paskutinis į jį patalpintas elementas paimamas pirmas ir atvirkščiai, tai
vadinama LIFO – Last In First Out).
1
0
1
1
Tokių struktūrų pavyzdžiai - šaunamo ginklo
dėklas, padėklai valgykloje, paprogramės
parametrai, grįžimo adresai programose,
atlikus vidines procedūras ir t.t.
Steko galas, kur vyksta įrašų pridėjimas ir
šalinimas, vadinamas viršūne, o kitas –
pagrindu.
15
Slide 16
Eilė
Priešingai stekui, kur elementų pridėjimas ir paėmimas vyksta viename
gale, eilė – tai toks sąrašas, kuriame elementų pridėjimas
vyksta viename gale, o paėmimas kitame.
Eilės ilgis iš anksto neapibrėžiamas ir teoriškai gali būti begalinis. Tokia
seka vadinama “pirmas įėjo - pirmas išėjo”(FIFO – first in first
out).
Eilės kraštas, kuriame elementai paimami, vadinamas pradžia, o kur
pridedami – eilės pabaiga. Saugant eilę kompiuterio atmintyje kaip
susietą sąrašą, reikia naudoti dvi rodykles, nurodančias eilės pradžią ir
pabaigą.
0001101
16
Slide 17
Hierarchinės struktūros
Nereguliarūs duomenys dažnai pateikiami kaip hierarchinės
struktūros. Hierarchinę struktūrą turi įvairios adresų sistemos (pašto,
interneto). Ji naudojama sistematizacijoje bei klasifikacijoje, pavyzdžiui,
duomenys apie turimą programinę įrangą gali turėti tokią hierarchinę
struktūrą:
P ro g ram in ė įra n ga
S is tem inė
T a rn yb inė
T a ik o m o ji
DBVS
V e k torin iai
re d a kto riai
R a s trin ia i re d a kto riai
Ad o b e Illiu s tra tor
C o re l D R AW
M a c rod e d ia F ree h a nd
17
Slide 18
Hierarchinės struktūros (2)
Hierarchinėje struktūroje kiekvieno elemento adresas apibrėžiamas
kreipties keliu (maršrutu), vedančiu nuo struktūros viršūnės iki
ieškomo elemento. Pvz.: programos Corel DRAW kreipties kelias
ankstesnėje struktūroje bus:
Programinė įranga ►Taikomoji ►Vektoriniai redaktoriai
►Corel DRAW
Šio kelio atvaizdavimo (kodavimo) būdai yra įvairūs.
Informatikoje dažnai naudojamas būdas, paremtas taip vadinamu
dichotomijos metodu. Jis leidžia kreipties kelią sutvarkytoje
struktūroje užrašyti labai kompaktiškai, naudojant dvejetainius
simbolius.
Dichotomijos metodu sudarytoje hierarchinėje struktūroje kreipties kelią
į bet kurį elementą galime pateikti kaip kelią per racionalų labirintą su
posūkiais į kairę (0) ir dešinę (1) ir išreikšti kreipties kelią kompaktišku
dvejetainiu įrašu.
18
Slide 19
Pvz. struktūroje:
Informacinis aprūpinimas
Taikomosios programos
Netaikomosios programos
Grafiniai redaktoriai
Negrafiniai redaktoriai
Tekstiniai procesoriai
Netekstiniai procesoriai
Word Pad
Word 2000
Kreipties kelias į tekstų
procesorių Word 2000
bus išreikštas
dvejetainiu skaičiumi
1 0 1 0.
19
Slide 20
Medžio tipo struktūros (grafai)
Medžio tipo struktūras nagrinėja speciali matematikos sritis, vadinama
grafų teorija.
Grafą (G) sudaro dvi aibės: viršūnių aibė (V) ir briaunų aibė (G), G =
(V,E). Viršūnės gali būti nurodomos jų numeriais, o briaunos jungiamų
viršūnių pora.
2
e1
1
e6
e2
3
e3
5
e4
e5 4
Tam tikros grafų rūšys turi savo pavadinimus.
Medžiu vadinamas susietas grafas, kuriame
nėra ciklų. Medžiai turi vieną viršūnę, į kurią
neįeina jokia kita. Ši viršūnė vadinama
šaknimi. Iš šaknies į kiekvieną viršūnę veda
vienintelis kelias
20
Slide 21
Dvejetainiai medžiai
Dvejetainiu arba binariniu vadinamas orientuotas medis, kuriame į
kiekvieną viršūnę, išskyrus šakninę, įeina viena briauna, o išeina dvi.
Medžio dalis, išeinanti iš bet kokios viršūnės, vadinama šaka.
Grafų tipo struktūros naudojamos modeliuojant objektų sistemas, tarp
kurių egzistuoja tam tikri ryšiai, santykiai, priklausomybė, kai reikia
ištirti tokių sistemų struktūrą, jų funkcionavimą.
Pvz.: pavaizduoti binariniu medžiu reiškinį S=(a+b/c)*(d-e*f):
S
*
-
+
/
a
b
d
cc
*
e
f
21
4 tema. Duomenų struktūros
• Paprastieji:
Paprastųjų duomenų pagrindinis požymis- vienas vardas viena reikšmė
Sveikieji skaičiai;
Realieji skaičiai;
Tekstiniai duomenys (rašmenys);
Loginiai duomenys;
• Struktūriniai:
– tiesinės struktūros;
– hierarcinės struktūros.
1
Slide 2
Sveikieji skaičiai
• sudėties (+),
• atimties (-);
• daugybos (*) operacijos.
1) sveikosios dalies nustatymas, dalijant vieną iš kito;
2) liekanos nustatymas dalijant vieną skaičių iš kito.
Skaičiaus dydžio intervalas.
1 baitas [0, 255], 2 baitai [-32768, +32767],
4 baitai [-2147483648, + 2147483647] ar 12 baitų[28 ženklai]
Didžiausiam sveikajam skaičiui M+∞ ir mažiausiam neigiamam skaičiui
M-∞ galioja lygybės:
M+∞+1=M-∞ , pvz: 0111111 (+127) + 1 = 1111111 (-127)
M-∞-1=M+∞ ,
2
Slide 3
Realieji skaičiai
• sudėties (+), atimties(-),
• daugybos (*) ir dalybos (/)
operacijos kaip ir su matematiniais realiaisiais skaičiais.
Visos operacijos kompiuteryje atliekamos su tam tikru tikslumu:
1/3 standartiniu 4 baitų realiuoju skaičiumi bus 0,3333333,
o matematikoje tiksli 1/3 išraiška - begalinė dešimtainė trupmena.
Pagal tikslumo poreikį:
4 baitų [ 6-7 ženklai po kablelio],
8 baitų [15-16 ženklų po kablelio],
16 baitų [36 ženklai].
Fiksuotam tikslumui reikia naudoti apvalinimo funkciją
ROUND(išraiška;kiek skaičių po kablelio) arba meniu Tools/Options
kortelėje Calculation pažymėti nuorodą Precision as displayed.
3
Slide 4
Tekstiniai ir loginiai duomenys
Pagrindinė tekstinių duomenų (rašmenų) savybė - jų sutvarkymas,
t.y. savybė būti palyginamiems. Paprastai tai “a” < ”b”, “b” < “c” ir t.t.
Kiekvienas simbolis turi skaitmeninį kodą, pagal kuriuos ir atliekamas
lyginimas.
Naudojamas ir atskiras tekstinių duomenų tipas - eilutė (string), kurią
sudaro rašmenų rinkinys.
Eilutės tipo duomenys turi vieną operaciją - susijungimą
(konkatenciją).
Pvz.: ‘abcd’ & ‘efg’=’abcdefg’.
Loginiams duomenims, įgaunantiems tik reikšmę “teisinga” arba
“klaidinga” taikomi visi logikos algebros veiksmai. Loginės konstantos
paprastai žymimos žodžiais TRUE (teisinga) ir FALSE (klaidinga),
loginės operacijos: disjunkcija – OR, konjunkcija – AND.
4
Slide 5
Struktūriniai duomenų tipai
• tiesinės struktūros;
– Masyvai;
– Sąrašai (įrašai);
•
•
•
•
Rodyklės;
Nepertraukiamieji sąrašai;
Susietieji sąrašai;
Įrašai;
– Stekai;
– Eilės;
• hierarchinės struktūros;
– Medžio tipo struktūros;
• Binariniai medžiai.
5
Slide 6
Masyvai
Masyvas - tai vieno tipo duomenų rinkinys.
Visi masyvo elementai turi tą patį vardą ir skiriasi tik savo indeksu.
Pagal indeksą galime kreiptis į bet kurį masyvo elementą tiesiogiai ir naudoti
jį kaip pavienį duomenį.
0.5
4.7
…
A1
A2
…
A(1) A(2)
…
7.2
0.8
A3
A4
A(3)
A(4)
B = A(1) + A(3)
Masyvo elementai gali būti ne tik paprastųjų tipų, bet ir struktūriniai
arba kiti masyvai. Tada turime daugiamatį masyvą.
6
Slide 7
Įrašai
Aprašant ūkinės veiklos procesus dažnai tenka naudoti skirtingų tipų
duomenis, tada jų rinkinys sudaro įrašą (record).
Įrašas - tai įvardintų komponentų - laukų rinkinys, turintis
bendrą vardą.
Į kiekvieną įrašo lauką galime kreiptis įrašo bei lauko vardu; pvz.:
turime įrašą:
Įrašas B
Detalė
Nr.
Ilgis
Varžtas
16
35,6
B. Detalė
CHAR
B. Nr. B. Ilgis
INT
REAL
Ir masyve, ir įraše galima tiesiogiai kreiptis į konkretų elementą.
Įrašuose gali būti skirtingi duomenų tipai, o masyvų elementų
indeksacija yra lankstesnė, nes leidžia apskaičiuoti reikalingą indeksą.7
Slide 8
Sąrašai
Įrašų rinkiniai sudaro sąrašus.
Kuriant bet kokią duomenų struktūrą reikia spręsti tokius uždavinius:
• kaip atskirti duomenų elementus tarp savęs,
• kaip ieškoti reikalingų elementų,
• kaip pridėti ar pašalinti atskirus sąrašo elementus, išlaikant jų
surikiavimo tvarką.
Sąrašo įrašai atskiriami vienas nuo kito nustatant jiems pastovų ilgį, to paties tipo
DE užima atmintyje vienodą baitų kiekį.
Sudarydami sąrašo įrašo struktūrą nurodome jį sudarančių DE bazinį tipą ir ilgį.
Pavyzdžiui, sąrašo apie detales struktūra gali būti aprašyta taip:
Detalė
Nr.
Ilgis
CHAR*20
INT*2
REAL*4
Varžtas
16
35,6
Tokio sąrašo įrašas užims 26
baitus atminties ir, pvz., 15-os
detalės ilgį rasime prie sąrašo 15to įrašo adreso pridėję 22.
8
Slide 9
Sąrašai (2)
Priklausomai nuo įrašų išdėstymo kompiuterio atmintyje, yra
skiriami:
• Vientisieji (nepertraukiamieji) sąrašai;
• Nuorodiniai (susietieji ) sąrašai.
Dažniausi veiksmai su sąrašais:
Sąrašo elementų papildymas ir pašalinimas norint išlaikyti
nustatytą jų surikiavimo tvarką.
Kaip tai padaryti, neperrašinėjant sąrašo kiekvienu atveju?
Duomenų išsidėstymas kompiuterio pagrindinėje atmintyje apibrėžiamas
skaitmeniniais adresais.
Jei žinomas kokio tai duomenų elemento (DE) adresas, tai rasti šį
elementą yra paprasta. DE buvimo adresą nurodo rodyklės.
Rodyklėmis (pointer) yra vadinamos atminties ląstelės, saugančios
kitos ląstelės adresą.
9
Slide 10
Rodyklės
Bibliotekos katalogas, surikiuotas pagal pavadinimus ir autorius,
panaudojant rodykles:
……
30
…
105
….
509
…
Atsisveikinimas su ginklais
E.Hemingvėjus
…
105
For whom the bell tolls
E.Hemingway
….
Senis ir jūra
E.Hemingvėjus
…
509
…
….
820
R
o
d
y
k
l
ė
s
…
10
Slide 11
Vientisieji (nepertraukiamieji) sąrašai
Taigi, kaip galima saugoti sąrašus kompiuterio atmintyje?
Vienas iš būdų – saugoti visą sąrašo turinį vieningame atminties ląstelių
bloke su nuosekliais adresais.
Jeigu vienam sąrašo elementui (eilutei) įrašyti skirsime M atminties
ląstelių (baitų), o tokių eilučių maksimaliai gali būti N, tai kompiuterio
atmintyje reikės rasti vientisą bloką iš M*N ląstelių. Tokia struktūra
vadinama vientisuoju sąrašu. Tai tipiška masyvo struktūra:
M ląstelių (baitų)
N įrašų
Ap
Ap+M
Ap+2M
......
11
Slide 12
Nuorodiniai (susietieji ) sąrašai
Nuorodiniame sąraše kiekvieno įrašo vieta atmintyje nereglamentuojama.
Toks įvairiose atminties vietose išmėtytas sąrašas susiejamas rodyklėmis.
Tada kiekvienam nuorodinio sąrašo elementui saugoti reikės M+1 ląstelių, ir
paskutinėje M+1 ląstelėje reikės saugoti rodyklę į kitą pagal rikiavimo
tvarką sąrašo elementą, t.y. to elemento pirmos ląstelės adresą.
Nuorodinis sąrašas visada prasideda sąrašo pradžios rodykle ir baigiamas
elementu su nulinės reikšmės rodykle (NIL):
Pradžios rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
NIL
12
Slide 13
Įrašo šalinimas nuorodiniame sąraše
Tam reikia tik pakeisti vieno atitinkamo įrašo rodyklės turinį:
Šalinamas įrašas
Pradžios rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
Duomenys Rodyklė
NIL
13
Slide 14
Įrašo įterpimas nuorodiniame sąraše
Naujas įrašas išsaugomas bet kurioje laisvos atminties srityje ir
modifikuojama tik atitinkamo įrašo pagal rikiavimo tvarką rodyklė,
suteikiant jos reikšmę naujo įrašo rodyklei:
Pradžios rodyklė
Naujas įrašas
Duomenys
Rodyklė
Duomenys
Duomenys
Rodyklė
Rodyklė
NIL
14
Slide 15
Stekas
Jeigu elementų įterpimo ir šalinimo operacijų naudojimo sritį apribosime
tik sąrašo galais, tai vientisojo sąrašo panaudojimas taps patrauklesnis.
Tokios duomenų struktūros pavyzdžiu gali būti stekas - sąrašas,
kuriame visi įterpimo ir šalinimo veiksmai atliekami viename gale, t.y.
paskutinis į jį patalpintas elementas paimamas pirmas ir atvirkščiai, tai
vadinama LIFO – Last In First Out).
1
0
1
1
Tokių struktūrų pavyzdžiai - šaunamo ginklo
dėklas, padėklai valgykloje, paprogramės
parametrai, grįžimo adresai programose,
atlikus vidines procedūras ir t.t.
Steko galas, kur vyksta įrašų pridėjimas ir
šalinimas, vadinamas viršūne, o kitas –
pagrindu.
15
Slide 16
Eilė
Priešingai stekui, kur elementų pridėjimas ir paėmimas vyksta viename
gale, eilė – tai toks sąrašas, kuriame elementų pridėjimas
vyksta viename gale, o paėmimas kitame.
Eilės ilgis iš anksto neapibrėžiamas ir teoriškai gali būti begalinis. Tokia
seka vadinama “pirmas įėjo - pirmas išėjo”(FIFO – first in first
out).
Eilės kraštas, kuriame elementai paimami, vadinamas pradžia, o kur
pridedami – eilės pabaiga. Saugant eilę kompiuterio atmintyje kaip
susietą sąrašą, reikia naudoti dvi rodykles, nurodančias eilės pradžią ir
pabaigą.
0001101
16
Slide 17
Hierarchinės struktūros
Nereguliarūs duomenys dažnai pateikiami kaip hierarchinės
struktūros. Hierarchinę struktūrą turi įvairios adresų sistemos (pašto,
interneto). Ji naudojama sistematizacijoje bei klasifikacijoje, pavyzdžiui,
duomenys apie turimą programinę įrangą gali turėti tokią hierarchinę
struktūrą:
P ro g ram in ė įra n ga
S is tem inė
T a rn yb inė
T a ik o m o ji
DBVS
V e k torin iai
re d a kto riai
R a s trin ia i re d a kto riai
Ad o b e Illiu s tra tor
C o re l D R AW
M a c rod e d ia F ree h a nd
17
Slide 18
Hierarchinės struktūros (2)
Hierarchinėje struktūroje kiekvieno elemento adresas apibrėžiamas
kreipties keliu (maršrutu), vedančiu nuo struktūros viršūnės iki
ieškomo elemento. Pvz.: programos Corel DRAW kreipties kelias
ankstesnėje struktūroje bus:
Programinė įranga ►Taikomoji ►Vektoriniai redaktoriai
►Corel DRAW
Šio kelio atvaizdavimo (kodavimo) būdai yra įvairūs.
Informatikoje dažnai naudojamas būdas, paremtas taip vadinamu
dichotomijos metodu. Jis leidžia kreipties kelią sutvarkytoje
struktūroje užrašyti labai kompaktiškai, naudojant dvejetainius
simbolius.
Dichotomijos metodu sudarytoje hierarchinėje struktūroje kreipties kelią
į bet kurį elementą galime pateikti kaip kelią per racionalų labirintą su
posūkiais į kairę (0) ir dešinę (1) ir išreikšti kreipties kelią kompaktišku
dvejetainiu įrašu.
18
Slide 19
Pvz. struktūroje:
Informacinis aprūpinimas
Taikomosios programos
Netaikomosios programos
Grafiniai redaktoriai
Negrafiniai redaktoriai
Tekstiniai procesoriai
Netekstiniai procesoriai
Word Pad
Word 2000
Kreipties kelias į tekstų
procesorių Word 2000
bus išreikštas
dvejetainiu skaičiumi
1 0 1 0.
19
Slide 20
Medžio tipo struktūros (grafai)
Medžio tipo struktūras nagrinėja speciali matematikos sritis, vadinama
grafų teorija.
Grafą (G) sudaro dvi aibės: viršūnių aibė (V) ir briaunų aibė (G), G =
(V,E). Viršūnės gali būti nurodomos jų numeriais, o briaunos jungiamų
viršūnių pora.
2
e1
1
e6
e2
3
e3
5
e4
e5 4
Tam tikros grafų rūšys turi savo pavadinimus.
Medžiu vadinamas susietas grafas, kuriame
nėra ciklų. Medžiai turi vieną viršūnę, į kurią
neįeina jokia kita. Ši viršūnė vadinama
šaknimi. Iš šaknies į kiekvieną viršūnę veda
vienintelis kelias
20
Slide 21
Dvejetainiai medžiai
Dvejetainiu arba binariniu vadinamas orientuotas medis, kuriame į
kiekvieną viršūnę, išskyrus šakninę, įeina viena briauna, o išeina dvi.
Medžio dalis, išeinanti iš bet kokios viršūnės, vadinama šaka.
Grafų tipo struktūros naudojamos modeliuojant objektų sistemas, tarp
kurių egzistuoja tam tikri ryšiai, santykiai, priklausomybė, kai reikia
ištirti tokių sistemų struktūrą, jų funkcionavimą.
Pvz.: pavaizduoti binariniu medžiu reiškinį S=(a+b/c)*(d-e*f):
S
*
-
+
/
a
b
d
cc
*
e
f
21