You are on page 1of 6

Teorija:

1. Sąvokos:
 Informacija-mokslinės, visuomeninės, politinės, techninės žinios, perduodamos vienų asmenų kitiems žodžiu,
raštu arba žiniasklaidos priemonėmis.
 Duomenys-formalizuoas informacijos vaizdinys, tinkamas suvokti, perduoti kitiems ir apdoroti.
 Duomenų struktūra-tai duomenų aibė, kuriai apibrėžtos tam tikros operacijos ir loginiai ryšiai tarp jų.
 Duomenų apdorojimas-tai sistemingas operacijų su duomenimis atlikimas
2. Algoritmas, algoritmų ir duomenų sąsaja
Algoritmas nusako uždavinio sprendimą. Bendriausiu atveju algoritmas reiškia tam tikrų taisyklių visumą,
nurodančią, kaip išspręsti uždavinį.
Algoritme turi būti nurodoma, kokią duomenų struktūrą imsime apdorojimui ir kokią duomenų struktūrą
gausime apdoroję duomenis.
Algoritmai ir duomenų struktūros yra neatsiejami nuo taikymų. Duomenys taikymuose įgyja turinį ir formą-tai
daro įtaką operacijoms su duomenimis. Tas pats algoritmas skirtingiems duomenims gali būti visiškai skirtingai
realizuotas.
Duomenys ir algoritmai gali būti labai įvairūs ir pateikti įvairiai. Gyvenime sprendžiamus uždavinius galima būtų
suskirstyti į dvi grupes: moksliniai-inžinieriniai ir ekonominiai-vadybiniai.
3. Pagrindinės algoritmų savybės: diskretumas, apibrėžtumas, baigtumas, rezultatyvumas, efektyvumas ir
universalumas
Diskretus iš lot kalbos reiškia atskiras. Algoritmas turi būti skaidomas į tiksliai aprašytus vykdymo žingsnius
Apibrėžtumas-algoritmo sprendimo žingsniai, turi būti apibrėžti vienareikšmiškai (negali būti dviprasmybių) ir
vykdomi nustatyta tvarka.
Baigtumas-kompiuterinis uždavinio sprendimas turi būti baigtinis-turi būti aiškiai suformuluota pabaiga.
Rezultatyvumas-algoritmas turi turėti pradinių duomenų įvedimą ir rezultatų išvedimą. Įvedimo procesas reiškia
duomenų judėjimo kryptį kompiuterio operatyviosios atminties link. Išvedimas arba uždavinio sprendimo
rezultatų pateikimas turi atvirkščią kryptį-iš operatyviosios atminties duomenys turi judėti galutinio naudotojo
linkme.
Efektyvumas-apdorojimo žingsniai turi būti lengvai suvokiami, lengvai atvaizduojami ir turėti kiek įmanoma
mažesnę realizacijos trukmę.
Universalumas-tokia savybė, kai algoritmas galioja keičiant kiekybinius ar kokybinius parametrus/tai galimybė
panaudoti tą patį algoritmą įvairiems pradiniams duomenims.
4. Parametrai naudojai algoritmo pritaikomuo praktikoje vertinimui
Įvertinant, kiek konkretus algoritmas gali būti pritaikytas praktikoje, reikia įvertinti atliekamų instrukcijų skaičių ir
saugojamų bitų skaičių.
5. Tiesiniai ir šakoti algoritmai
Tiesiniai algoritmai-tai tokie algoritmai, kuriuose visi veiksmai atliekami nuosekliai vienas po kito be jokių
alternatyvų ar veiksmų grupių kartojimo.
Šakoti-tai algoritmai, kuriuose yra alternatyvūs sprendimo keliai. Sprendimas pasirenkamas priklausomai nuo
tikrinamos sąlygos-jei sąlyga tenkinama, skaičiuojama vienu būdu, jei ne-kitu būdu.
6. Ciklinių algoritmų paskirtis, struktūra ir realizavimo būdai

1
7. Algoritmo sudaryo etapai:
1) Išanalizuoti užduotį, numatant visus galimus kritinius užduoties sprendimo atvejus.
2) Išanalizuoti, kokie gali būti pradiniai duomenys ir kokie turi būti rezultatai.
3) Išdėstyti užduoties sprendimą juo smulkesniais žingsniais.
4) Pateikti sudarytą algoritmą pasirinktu būdu
8. Statinės ir dinaminės duomenų struktūros
Statinės duomenų struktūros-tai duomenų struktūros, kurių dydis nurodomas iš anksto ir negali keistis vykdant
programą.
Dinaminės duomenų struktūros-tai tokios struktūros, kurių dydis gali keistis vykdant programą
9. Tiesinės duomenų struktūros : masyvas, stekas, eilė, dekas, tiesinis sąrašas
Masyvas-tai vieno tipo tolydžiai išdėstytų kintamųjų aibė, kai kintamųjų skaičius iš anksto žinomas, o kiekvieną
kintamąjį galima išrinkti tiesiogiai, naudojant indeksą ar indeksus.
Stekas-tai duomenų aibė, kuriai apibrėžtos tokios operacijos:
-inicializuoti steką;
-įterpti elementą į steką (push);
-pašalinti elementą iš steko (pop)
-skaityti steko elementą (top);
-panaikinti steką.
Steke taikomi loginiai apribojimai-LIFO (last in first out) principas. Stekas yra riboto naudojimo duomenų
struktūra. Stekas yra populiari duomenų struktūra informatikoje.
Eilė-tai duomenų aibė, kuriai apibrėžtos tokios operacijos:
-inicializuoti eilę;
-įterpti elementą į eilę (put)
-pašalinti elemeną iš eilės (get)
-skaityti elementą
-panaikinti eilę.
Dekas-tai duomenų aibė, kuriai apibrėžtos tokios operacijos:
-inicializuoti deką
-įterpti elementą į deko pradžią arba pabaigą
-pašalinti elementą iš deko pradžios arba pabaigos
-skaityti deko elementą nuo pradžios arba pabaigos
-panaikinti deką
Tiesinis sąrašas-tai duomenų aibė, kuriai taikomos tokios operacijos:
-inicializuoti sąrašą
-įterpti elementą į tam tikrą sąrašo vietą

2
-įterpti elementą tenkinant nurodytas sąlygas
10. Tiesinio sąrašo rūšys
Vienkryptis tiesinis-tai sąrašas, kurio kiekvienas elementas „žino“, koks elementas yra po jo
Dvikryptis tiesinis-tai sąrašas, kurio kiekvienas elementas ne tik „žino“, koks elementas yra po jo, bet ir „žino“,
koks elementas yra prieš jį
Ciklinis vienkryptis-tai sąrašas, kurio paskutinis elementas rodo į pirmąjį.
Ciklinis dvykryptis-tai sąrašas, kurio paskutinio elemento rodyklė rodo į pirmąjį elementą, o pirmojo į paskutinį.
11. Duomenų medis
12. Medžio elementai: viršūnė, šaknis, lapas, išorinė viršūnė
Visi medžio elementai vadinami viršūnėmis. Viena medžio viršūnė (į kurią nėra nuorodų) vadinama medžio
šaknimi. Viršūnė, iš kurios nėra muorodų į kitas viršūnes, vadinama lapu arba išorine viršūne.
13. Sąvokos: viršūnės lygis, medžio aukštis, pomedis
Viršūnės lygis-???
Medžio aukštis-tai viršūnių skaičius nuo šaknies iki tolimiausio lapo. Jei medis tuščias, jo aukštis 0. Jei medis nėra
tuščias, jo aukštis lygus maksimaliam viršūnių lygiui.
Kiekviena nuroda su viršūnėmis, į kurias galima patekti, pradėjus eiti ta nuoroda, vadinama medžio šaka arba
pomedžiu.
14. Sąvokos: dvejetainis medis, pilnas dvejetainis medis, užbaigtas dvejetainis medis.
Dvejetainis medis-tai toks medis, kurio kiekviena viršūnė turi ne daugiau kaip du vaikus. Medis yra dvejetainis
jeigu jis tuščias abra turi du pomedžius.
Pilnas dvejetainis medis-tai toks medis, kuriame kiekviena viršūnė turi du vaikus arba yra lapas. Pilnas
dvejetainis medis tai dvejetainis aukščio h medis, kuris turi visus lapus h lygyje ir visus mažesnio už h lygį
viršūnės turi du vaikus.
Užbaigtas dvejetainis medis, kurio aukštis h, tai dvejetainis medis, kuris -yra pilnas iki aukščio h-1; -lygyje h
pildomas iš kairės į dešinę. Tai toks medis, kuriame viršūnės pildomos iš kairės į dešinę tol, kol užpildomas visas
lygis ir tik tuomet pereinama į seknatį lygį.
15. Sąvokos: subalansuotas pagal aukštį ir visiškai subalansuotas medis
Subalansuotas pagal aukštį medis-tai medis, kurio kiekvienos viršūnės kairiojo ir dešiniojo pomedžio aukščiai
skiriasi ne daugiau kaip vienu lygiu.
Visiškai subalansuotas dvejetainis medis-tai medis, kurio kairieji ir dešinieji kiekvienos viršūnė pomedžiai yra to
paties aukščio.
16. Aritmetinės išraiškos išdėstymas medyje
Duomenų išdėstymas viršūnėse ir medžio apėjimo tvarka parenkama priklausomai nuo taikymo.
Skirtingos medžio apėjimo strategijos naudojamos tam, kad būtų gauti skirtingi rezultatai.
17. Dvejetainio medžio apėjimo taisyklės ir jų atlikimo tvarka

VKD(tiesioginis): aplankyti Viršūnę; apeiti Kairįjį pomedį; apeiti Dešinįjį pomedį.

KVD(vidinis): apeiti Kairįjį pomedį; aplankyti Viršūnę; apeiti Dešinijį pomedį.

KDV(atvirkštinis): apeiti Kairijį pomedį; apeiti Dešinijį pomedį; aplankyti Viršūnę.

18. Dvejetainis paieškos medis


Tai dvejetainis medis, kurio viršūnėse saugomos reikšmės sutvarkytos taip:

Viršūnės reikšmė yra didesnė už visas reikšmes jos kairiajame pomedyje;

Viršūnės reikšmė yra mažesnė už visas reikšmes jos dešiniajame pomedyje;

Kairysis ir dešinysis pomedžiai yra dvejetainiai paieškos medžiai.

3
19. Duomenų įterpimo į dvejetainį paieškos medį algoritmas.
1) Patikrinti viršūnę
2) Jei įteriama reikšmė lygi viršūnės reikšmei, baigti darbą, nes „tokia reikšmė jau yra“
3) Jei įterpiama reikšmė mažesnė už viršūnės reikšmę,
-jei kairysis pomedis netuščias, pereiti į jį ir kartoti nuo 1-o žingsnio;
-jei kairysis pomedis tuščias, sukurti jame naują viršūnę su įerpiamais duomenimis.
4) Jei įterpiama reikšmė didesnė už viršūnės reikšmę,
-jei dešinysis pomedis netuščias, pereiti į jį ir kartoti nuo 1-o žingsnio;
-jei dešinysis pomedis tuščias, sukurti jame naują viršūnę su įerpiamais duomenimis.

20. Elemento paieškos dvejetainiame paieškos medyje algoritmas


1) Patikrinti viršūnę
2) Jei ieškoma reikšmė lygi viršūnės reikšmei, baigti darbą „reikšmė rasta“.
3) Jei ieškoma reikšmė mažesnė už viršūnės reikšmę, pereiti į kairįjį pomedį ir kartoti nuo 1-o žingsnio (jei jis
tuščias, baigti darbą „reikšmė nerasta“).
4) Jei ieškoma reikšmė didesnė už viršūnės reikšmę, pereiti į dešinįjį pomedį ir kartoti nuo nuo 1-o žingsnio (jei jis
tuščias, baigti darbą „reikšmė nerasta“).
21. Dvejetainio paieškos medžio viršūnės šalinimo algoritmas
Išskiriami trys viršūnės šalinimo atvejai:
-šalinama viršūnė-lapas;
-šalinama viršūnė, kuri turi tik vieną vaiką;
-šalinama viršūnė, kuri turi abu vaikus.
šalinama viršūnė-lapas
jei iš medžio šaliname viršūnę-lapą, tai šią viršūnę atkabiname nuo jos tėvo ir sunaikiname.

šalinama viršūnė, kuri turi tik vieną vaiką


Jei šaliname viršūnę, kuri turi tik vieną vaiką, tai šią viršūnę keičiame vaiku, o pačią sunaikiname.

šalinama viršūnė, kuri turi abu vaikus


Jei šaliname dešiniojo pomedžio viršūnę, kuri turi abu vaikus, tai šią viršūnę keičiame jos dešinės šakos mažiausią
reikšmę turinčia viršūne, o pačią sunaikiname.
Jei šaliname kairiojo pomedžio viršūnę, kuri turi abu vaikus, tai šią viršūnę keičiame jos kairės šakos didžiausią
reikšmę turinčia viršūne, o pačią sunaikiname.
22. Piramidė
Duomenų krūva-tai užbaigtas dvejetainis medis, t.y toks medis, kuriame viršūnės pildomos iš kairės į dešinę tol,
kol užpildomas visas lygis ir tik tuomet pereinama į sekantį lygį.
Kiekvienai viršūnei patenkinama sąlyga: tėvo reikšmės turi būti didesnės (mažesnės) už jo vaikų reikšmes.
Kitaip nei dvejetainiame paieškos medyje, nėra jokio sąryšio tarp vaikų reikšmių, t.y. nežinoma, kurio iš vaikų
reikšmė didesnė.
Didžiausias (mažiausias) aibės elementas turi būti medžio šaknyje.
Piramidės struktūros dvejetainis medis, saugomas vienmačiame masyve, kuriame nuorodos nukreiptos iš tėvo
viršūnės į vaikus.
Jeigu medžio šaknyje yra didžiausias elementas ir kiekvienai viršūnei tenkinama sąlyga: tėvo reikšmė didesnė už
jo vaikų reikšmes, tai turime piramidę maksimum.
Jeigu medžio šaknyje yra mažiausias elementas ir kiekvienai viršūnei tenkinama sąlyga: tėvo reikšmę mažesnė už
jo vaikų reikšmes, tai turime piramidė minimum.
23. Naujo elemento įterpimo į piramidę algoritmas.

4
-nauja reikšmė įdedama kaip paskutinė;
-reikšmė „pakeliama“, kol atstatoma piramidės reikšmių tvarkos taisyklė.
24. Viršūnės šalinimo iš piramidės algoritmas
-išmetama didžiausia (mažiausia) reikšmė (šaknis);
-paskutinė reikšmė patalpinama į šaknį;
-reikšmė „nuleidžiama“, kol atstatoma piramidės reikšmių tvarkos taisyklė.
25. Tiesinių duomenų struktūrų išdėstymas atmintyje
Atmintyje tiesinės duomenų struktūros išdėstomos nuoseskliai elementas po elemento.
Tokias duomenų struktūras gan paprasta programuoti ir naudoti, tačiau taikymams jos gali būti neefektyvios.
26. Duomenų mazgas ir duomenų matrica
Tai duomuo, kuris yra tam tikras atributas, turintis savo reikšmę.
Tokie duomenys-mazgai nėra savarankiški, jie yra susaistyti su kitais duomenimis.
Turėdami keletą mazgų duomenų struktūroje, galime ją traktuoti kaip tam tikrą duomenų matricą.
Jeigu turime m eilučių ir n stulpelių matricą, tai bet kuris matricos elementas gali būti žymimas su dviem
indeksais-aij, kur 1≤i≤m, 1≤j≤n.
Jeigu tiesinį sąraųą sudaro t mazgų, išreikštų matrica, turinčia m x n elementų, tai tokių elementų bus
Jeigu reikia rasti duomenį matricos viduje, tai ieškomas nuotolis nuo matricos pradžios iki to elemento: nuot=(i-
1)*n+(j-1)
Duomenų matrica
Jeigu duomenų struktūra sudaryta iš t duomenų mazgų, kurie gali būti traktuojami kaip maricos, tai duomenų
skaičius toje struktūroje bus
Jei reikalingas duomuo, kuris yra kažkurios matricos viduje, tai toje paskutiniojoje matricoje bus naudojama
formulė (i-1)*n+(j-1)
27. Ieškomo duomens vietos nustatymas duomenų matricoje
Ieškomo duomenys yij vieta nustatoma pagal formulę
28. Dvejetainių medžių dėstymas kompiuterio atmintyje
Medžio viršūnių elementai surašomi į įrašus su nuorodomis
Nuorodos nukreiptos iš tėvo viršūnės į vaikus
Nuorodų skaičius įraše turi būti lygus didžiausiam medžio viršūnių vaikų skaičiui

Dvejetainio medžio atveju


Jei medis dvejetainis, tai užtenka dviejų nuorodų: kairė(k) ir dešinė(d).
Vieną atskirą elementą turi sudaryti informacinė dalis ir dvi rodyklės, nurodančios į vaikus:
Informacinė dalis Kairiojo vaiko rodyklė Dešiniojo vaiko rodyklė

29. Kiek reikia atminties dvejetainio medžio išdėstymui?


Reikalingas atminties kiekis:
S=N(D+2P)
N-viršūnių skaičius, P-atminties kiekies, skirtas rodyklei, D-atminties kiekies, reikalingas duomenims.
30. N-tainių medžių dėstymas kompiuterio atmintyje
Bet kuriam n-tainiam medžiui naudoti įrašus tik su dviem nuorodomis.
Nuorodos turi būti interpretuojamos taip:
-kairioji nuoroda identifikuoja viršūnės kairįjį sūnų,
-dešinioji nuoroda rodo viršūnės dešinįjį broil.
Realizacija daugiausia priklauso nuo taikomojo algoritmo, t.y. priklauso nuo to, koks parinktas bazinis tipas-
masyvas, ar rodyklės tipas.
Bazinis tipas taip pat daro įtaką, ir kartais esminę, algoritmo greičiui.

5
31. Rekursyvūs medžiai
Trečias medžio struktūros dėstymo būdas-rekursyvūs medžiai.
Naudojamas tada, kai algoritme dažniausiai reikia naudoti nuorodas iš vaikų į jų tėvus.
Medžio viršūnės sunumeruojamos pagal lygius ir išdėstomos vienmačiame masyve.
Masyvo indeksai turi atitikti viršūnių numerius.
Masyvo element reikšmės turi būti nuorodos į tėvo numerį.
Toks medžio organizavimas įgalina labai greitai “vaikščioti” medžio šakomis uo sūnų prie tėvų ir nuo vienos
viršūnės prie kitos.

You might also like