Data structures theory midterm test Flashcards

1
Q

Kas yra Algoritmas?

A

Tai aiškiai suformuluota tikslių veiksmų seka, nurodanti ką ir kaip reikia atlikti norint išspręsti suformuluotą uždavinį

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Kokios yra algoritmų savybės?

A

Diskretumas - Algoritmas turi būti skaidomas į tiksliai aprašytus vykdymo žingsnius.

Apibrež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ą

Efektyvumas - Apdorojimo žingsniai turi būti lengvai suvokiami, lengvai atvaizduojami ir turėti kiek įmanoma mažesnę realizacijos trukmę

Universalumas - tai galimybė panaudoti tą patį algoritmą įvairiems pradiniams duomenims. Universalumas – tokia savybė, kai algoritmas galioja keičiant kiekybinius ar kokybinius parametrus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kas yra tiesiniai algoritmai?

A

Tiesiniai - Tai tokie algoritmai, kuriuose visi veiksmai atliekami nuosekliai vienas po kito be jokių alternatyvų ar veiksmų grupių kartojimo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Kas yra šakoti algoritmai?

A

Šakoti - Tai algoritmai, kuriuose yra alternatyvūs sprendimo keliai.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kas yra cikliniai algoritmai?

A

Cikliniuose skaičiavimo procesuose kai kurie veiksmai kartojami su vis naujomis kintamųjų reikšmėmis. * Pasikartojančią skaičiavimo proceso dalį vadinsime ciklu. * Kintamasis, kurio reikšmė lemia, kiek kartų atlikti ciklą, vadinamas ciklo parametru.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kokie yra algoritmo sudarymo etapai?

A
  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ą kuo smulkesniais žingsniais.
  4. Pateikti sudarytą algoritmą pasirinktu būdu.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Kas yra statinės duomenų struktūros?

A

Statinės duomenų struktūros – tai duomenų struktūros, kurių dydis nurodomas iš anksto ir negali keistis vykdant programą.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Kas yra dinaminės duomenų struktūros?

A

Dinaminės duomenų struktūros – tai tokios struktūros, kurių dydis gali keistis vykdant programą.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kokios yra tiesinės duomenų struktūros?

A

Masyvas, stekas, eilė, dekas, tiesinis sąrašas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Kas yra masyvas?

A

Masyvas – tai fiksuotas kiekis duomenų, kurie atmintyje laikomi nuosekliai, o išrenkami naudojant indeksą ar indeksus. Kiekvieno duomens reikšmės formuojamos unifikuotai

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kas yra stekas ir kokias operacijas turi?

A

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ą

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Kas yra eilė ir kokias operacijas turi?

A

Eilė – tai duomenų aibė, kuriai apibrėžtos tokios operacijos:
– Inicializuoti eilę; – įterpti elementą į eilę (put);
– pašalinti elementą iš eilės (get);
– skaityti elementą;
– panaikinti eilę

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kas yra dekas ir kokias operacijas turi?

A

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 deka

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kas yra tiesinis sąrašas ir kokias operacijas turi?

A

Tiesinis sąrašas – tai duomenų aibė, kuriai taikomos tokios operacijos:
– inicializuoti sąrašą;
– įterpti elementą į tam tikrą sąrašo vietą;
– įterpti elementą tenkinant nurodytas sąlygas;
– pašalinti iš sąrašo elementą, esantį tam tikroje vietoje;
– pašalinti iš sąrašo elementą tenkinant nurodytas sąlygas;
– skaityti nurodytą sąrašo elementą;
– panaikinti sąrašą

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kokios yra tiesinio sąrašo rūšys ir kas juose įpatingo?

A

Vienkryptis - tai sąrašas, kurio kiekvienas elementas „žino“, koks elementas yra po jo.
Dvikryptis - tai sąrašas, kurio kiekvienas elementas ne tik „žino“, koks elementas yra po jo, bet ir „žino“, koks elementas yra prieš jį
Ciklinis - tai sąrašas, kurio paskutinis elementas rodo į pirmąjį
Ciklinis dvikryptis - tai dvikryptis sąrašas, kurio paskutinio elemento rodyklė rodo į pirmąjį elementą, o pirmojo į paskutinį

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Kas yra duomenų medis?

A

Medis – tai tokia hierarchinė duomenų struktūra, kurioje:
* į kiekvieną elementą, išskyrus vieną, vadinamą medžio šaknimi, yra tik vienintelė nuoroda iš kito elemento;
* iš kiekvieno elemento gali būti viena arba daugiau nuorodų į kitus elementus;
* iš šaknies einant nuorodomis galima pasiekti visus kitus elementus.

17
Q
A
18
Q

Kokie yra medžio elementai?

A

Viršūnė - visi medžio elementai, šaknis - viršūnė į kurią nėra nuorodų, lapas - viršūnė iš kurios nėra nuorodų į kitas viršūnes.

19
Q

Kas yra medžio viršūnės lygis, medžio aukštis, pomedis?

A

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.

Pomedis - Kiekviena nuoroda su viršūnėmis, į kurias galima patekti, pradėjus eiti ta nuoroda, vadinama medžio šaka arba pomedžiu

20
Q

Kas yra dvejetainis medis, pilnas dvejetainis medis, užbaigtas dvejetainis medis?

A

Dvejetainis medis - toks medis kurio kiekviena viršūnė turi ne daugiau kaip du vaikus arba tusčias.

Pilnas dvejetainis medis - vadiname tokį medį, kuriame kiekviena viršūnė turi du vaikus arba yra lapas.

Užbaigtas dvejetainis medis - tai toks medis, kuriame viršūnės pildomos iš kairės į dešinę tol, kol užpildomas visas lygis ir tik tuomet pereinama į sekant į lygį.

21
Q

Kas yra subalansuotas pagal aukštį ir visiškai subalansuotas medis?

A

Subalansuotas pagal aukštį medis (height balanced) – 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 (completely balanced) – tai medis, kurio kairieji ir dešinieji kiekvienos viršūnės pomedžiai yra to paties aukščio

22
Q

Kaip aritmetinė išraiška išdėstoma medyje?

A

Medžio viršūnėje (šaknyje) įrašoma išraiškos paskutinė atliekama operacija.
Į kairįjį pomedį įrašomas kairysis operacijos operandas, į dešinįjį dešinysis.

23
Q

Dvejetainio medžio apėjimo taisyklės ir jų atlikimo tvarka VKD, KVD, KDV

A
  • 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šinįjį pomedį.
  • KDV (atvirkštinis): apeiti Kairįjį pomedį; apeiti Dešinįjį pomedį; aplankyti Viršūnę.
24
Q

Kas yra duomenų krūva (piramidė)?

A

Duomenų krūva (angl. heap) – 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į

25
Q

Tiesinių duomenų struktūrų išdėstymas atmintyje

A

Atmintyje tiesinės duomenų struktūros išdėstomos nuosekliai elementas po elemento

26
Q

Kokie yra rūšiavimo algoritmai?

A
  • vidinis ir išorinis rūšiavimas (apibrėžimai);
    Vidinis - Vidinio rūšiavimo algoritmai naudoja tik vidinę kompiuterio atmintį
    Išorinis - Išorinio rūšiavimo algoritmai naudoja vidinę ir išorinę atmintį
27
Q

Kas yra stabilūs ir nestabilūs rūšiavimo algoritmai?

A
  • stabilūs ir nestabilūs algoritmai (apibrėžimai).
    Stabilus - Stabilūs algoritmai nekeičia lygių elementų tvarkos
    Nestabilus - Nestabilūs algoritmai lygių elementų vietų išsaugojimo negarantuoja
28
Q

Kaip įvertinti rūšiavimo algoritmų sudėtingumą?

A

– elementų lyginimo veiksmų skaičius;
– elementų sukeitimų skaičius rūšiavimo metu

29
Q

Burbulo rūšiavimo algoritmas

A

algoritmo principas - nuosekliai iš eilės peržiūrėti gretimų elementų poras, prireikus elementus sukeisti vietomis

30
Q

Išrinkimo rūšiavimo algoritmas

A

Pagrindinis principas – mažiausią arba didžiausią elementą rašyti į pirmą duomenų sekos vietą, tada taikyti tą patį principą posekiui be pirmojo elemento ir t. t.

31
Q

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

A

S = N (D + 2 P
Čia N- viršūnių skaičius, P– atminties
kiekis, skirtas rodyklei, D- atminties kiekis, reikalingas duomenims.