Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

Algoritmid ja andmestruktuurid konspekt - puud (0)

5 VÄGA HEA
Punktid

Esitatud küsimused

  • Kui efektiivsed puud kui struktuurid on?
  • Millest puu nivoode arv sõltub?
  • Kuidasmoodi saavutada seda et puu oleks rohkem tasakaalus?
  • Kuidas seda teha meil pole ju alt üles näitavaid viitasid?
Puu on rekursiivne, seega ka enamik algoritme, mis temaga rakendada, on rekursiivsed. Kuid iga 
rekursiivset algoritmi saab esitada ka iteratiiselt, nagu enne juttugi oli. Kui  juur välja jätta, siis 
kõigil teistel tipul on olemas ematipp ja ematippudel(parent) on omakorda tütartipud( child ). Sama 
emaga  tipud  on õed(siblings).
Kui meil on mitu puud, võime rääkida metsast( forest ). Luline on rääkida veel puu kõrgusest. Puu 
jaguneb nivoodeks. Nivoode hulk on puu kõrgus. Mõnes õpikus võib näha ka teistsugust 
definitsiooni puu kõrguse kohta.
Järjestatud puu, järjestamata puu. Kui on oluline, mis järjekorras mööda nivood vasakult paremale 
liikudes õed mis järjekorras paiknevad, siis järjestatud puu.
Ülespoole järjestatud puud veel jne.
Binary  search tree(kahendotsingu puu).  
Ehitamisel  - Kui järgmine kirje on väiksem, siis vasakule, kui suurem, siis paremale. Kui midagi 
ees pole, siis teeme uue kaare ja uue tipu. Jne. Kui on, siis mine mööda seda edasi, kuni enam pole.
Otsimisel - Igas  tipus  tuleb teha üks võrdlus, sõltuvalt sellest minna kas vasakule või paremale. Kui 
satume tühjale kohale, siis otsitavat kirjet ei olegi.
Kui 2 kirjet on võrdsete võtmetega, siis sellisel juhul on 2 lahendust . Primaarsed ja sekundaarsed 
võtmed. Need võtmed, mille järgi puud ehitame, on primaarsed. Kui primaarsed võtmed langevad 
kokku, siis hakatakse võrdlema sekundaarseid võtmeid ja väiksemaks loetakse see, mille puhul 
sekundaarne  võti on väiksem. Nt primaarne võti on inimese nimi ja sekundaarne on inimese vanus.
Teine võimalus on see, et  paneme  teise tipu juurde rohkem kui üks kirjet. See lahendus on halvem
teeb puud keerulisemaks.
Kolmas – väiksem-võrdne vasakule, suurem-võrdne paremale. 
Tõmbame joone ülalt alla...kõik nrid, mis joonest vasakul on väiksemad nendest  nr-test, mis on 
joonest paremal. Ükskõik, mis tipu jaoks tõmbame sellise joone, tulemus on ikka sarnane.
Kuidas leida kõige väiksema võtmega kirje. Hakata juurest minema ja  liikuda  kogu aeg aina 
vasakule. Kui enam vasakule minna ei saa, siis ongi leitud. Kõige suurema otsimise puhul paremale 
samamoodi.
Andmestruktuurina - Tipp võiks koosneda kolmest viidast...üks  viit  on kirjele, üks vasakpoolsele 
tütrele, teine parempoolsele tütrele.
Operatsioonid  – loo tühi puu(ühtki juurt ega tippu). Loo uus kirje puusse. Eemalda kirje ja koos 
temaga vastav tipp puust. Puu likvideerimine. Ümber midagi paigutada ei saa, järjekord on 
võtmetega täiesti üheselt määratud. Kahendotsingu puu on järjestatud puu, sest vasakpoolse tütre 
võti on igal juhul väiksem kui parempoolse.
Teine variant.  Left  ja right pole enam  viidad , vaid indeksid. 0 tähistab olukorda, kus tütartippe pole. 
Sügavat mõtet sellisel lahendusel pole. Tuleks kõne alla vaid sellise progemiskeele juures, kus 
viitasid ei tunta. Tänapäeval aga selliseid progemiskeeli ei ole.  Kaudselt  on kõigil olemas, neid 
lihtsalt ei nimetata nii. Nim  reference 'iks, mitte pointeriks ja viitade aritmeetikat seal teha ei saa (nt 
C#).
Kirje eemaldamine – kui ühtki tütartippu kirjel pole, siis peab lihtsalt tema ematipu right viida 0-ks 
viima. Kui tahan 32 eemaldada, siis 23 läheb minema ja 30 hakkab viitama  26-le. Kui tahan 30 
eemaldada, siis...
Iga puuharu võib vaadelda eraldi puuna, probleem tekib siis, kui tuleb eemaldada juur.
Kui 58 eemaldan, siis tekib 2 omavahel mitte seotud haru. Ühe juuresk 37, teise juureks 75. sinise 
haru kõik võtme don rohelise haru kõikidest võtmetest suuremad. Miinimumi leidmiseks liikuda 
pidevalt avsakule, järelikult sinise haru miinimumiks on 61. Ikkagi on ta suurem kui mistahes võti 
rohelisest harust. Seega võtan terve sinise haru ja terve rohelise haru ning tõmban 61-st kaare 37-
sse. Võttes aluseks parempoolne haru, tõmban kaare selle miinimumist vasakpoolse haru juurtipuu. 
Oleks võinud vütta aluseks ka vasakpoolse haru. Mõlemat pidi võib. Praegu lisame lihtsalt 61-le 
viide  37-le, kõik muu jääb paika. Väga lihtne. Füüsiliselt midagi ei  liiguta .
Mõningaid operatsioone puudel keeruline läbi viia, kuna viidad on alati vaid ühes suunas – ülalt 
alla. Viidad on ainult emadelt tütardele. On olemas ka teistsugune puu – läbiõmmeldud puu – kuid 
sellega töötamine on äärmiselt tülikas, kuna iga kord tuleb muuta mitte 1 viita , vaid mitut.
Probleem -  Mõnus andmestruktuur nt andmebaasi  esitamiseks , aga kui tahan saada mingeid 
andmeid  paberil , siis seda puud ikka trükkima ei hakka.
Puu läbi käimine - Me peame leidma  algoritmid , millega külastatakse puu iga tippu, ükski tipp ei 
jää vahele ja ühtki tippu ei külastata rohkem kui üks kord. Nt kui tahame puud nimekirja kujul 
saada.
4 strateegiat.
1) Nivooti – probleem selles, et väga raske läbi viia, kuna viidad on meil ainult ülalt alla, aga 
vasakult paremale puuduvad. Praktiliselt teostamatu.
2) Süviti – vasak-parem juur. Algul külastame kõiki vasaku haru  tippe , siis kõiki parema haru 
tippe ja viimasena juurt. Mõlemas harus rakendame jälle omakorda sama taktikat.
3) Sümmeetriliselt – vasak-juur-parem. Nii saab kronoloogilise tulemuse. Nt nimekirja 
tähestiku järjekorras.
4) Laiuti - juur-vasak-parem
2,3,4 kõik rekursiivsed.
Külastuse eesmärgiks külastatav tipp hävitada ja et üldse puu mälust likvideerida, kõik tipud vabaks 
lasta – sellisel juhul tuleb külastada süviti strateegia järgi.
Proge  – antakse sisse viit puu juurele.
Sorditud loendi moodustamine puu põhjal.
Puu läbikäik sümmeetriliselt, aga mitte rekursiivselt. Kasutatud on stacki. Puu läbikäik(3). - läbi 
vaadata see näide.
Kaval progeja kasutab rekursiooni ikka siis, kui ta leiab, et see talle midagi annab.
Mida teha siis, kui ei ole tegemist kahendpuuga, vaid tütarde arv ei ole piiratud. Viit vektorile ning 
see  viitab omakorda tütardele. Viidad tütardele on ühes vektoris, kui üks tütar tuleb juurde, siis tuleb 
seda vektorit pikendada. Ei ole kõige parem lahendus.
Parem lahendus. Teha tipp  selliselt , et seal on viit kirjele. Tütarde puhul on viit ainult kõige 
vasakpoolsemale tütrele ning temast vahetult paremale asuvale õele. Sellisel juhul on viitade arv 
tipus täpselt kolm ja see arv pole muutuv. Kui  joonistame  need viidad veidi teisiti, siis saame 
kahendpuu. Seega oleme teisendanud paljuharulise puu kahendpuuks. Selle vahega, et viidad on 
veidi erinevad.
Äkki paneks viidad hoopis tütrelt emale, mitte vastupidi? Palju vähem viitasid tuleks ju. A-l ei ole 
ematippu, seetõttu on indeks 0. Näites  vektor  indeksitega. Selline lahendus töötab ainult siis, kui 
tegemist on järjestamata  puuga , sets siit enam ei saa välja lugeda, mis järjekorras õed on.
Kui efektiivsed puud kui  struktuurid on? Mida madalam on puu, mida vähem on tal nivoosid, seda 
vähem tuleb otsimisel teha ka võrdusi. Millest puu nivoode arv sõltub? - kirjete  arvust ning mis 
järjekorras  kirjed tulevad. Mida vähe võrdusi teha saab, seda parem puu on. Kõige halvem olukord 
on see, kus puust on saanud lineaarne loeng. Sellisel juhul kehtivad tema puhul ka kõik järjestikuse 
otsimise  parameetrid .
Kui on kindel tippude arv n, siis mida tihedamad on harud(nagu ilusal jõulukuusel), seda paremini 
on üksikud kirjed ära pakitud ja seda madalam on puu tervikuna . Selle kohta öeldakse, et puu on 
rohkem tasakaalus, sellel puul pole üksikuid harusid, mis on teistest tunduvalt kõrgmad. Kõige 
parem oleks, kui kõik harud on ühekõrgused. Sel puhul on puu absoluutselt tasakaalus. See on 
võimalik üksnes siis, kui kirjete arv n on kaks astmes k miinus  üks, kus k on mingi täisarv. Võrduste 
arv ei saa olla suurem, kui on puu kõrgus – see on loogiline. Kõik oleneb palju sellest, mis 
järjekorras kirjed tulevad, et millise kujuga puu tuleb. Juhuslikult genereeritud puu on tulemuseks. 
Antud juhul minimaalne kõrgus on 4 ning maksimaalne on 15 – siis kui ta on loendiks taandunud.
Kahendpuust otsimine on logaritmiline protsess – see on iseenesest väga hea.
Igasugune keskväärtus omab mõtet vaid siis, kui kaldumised keskväärtusest ei ole liiga suured. 
Sellepärast on ka sellised mõisted nagu keskmine palk täiesti mõttetud, kuna see ei näita midagi, 
kuna kõrvalekaldumised on väga suured.
Puu modifitseerimisel  kipub  puu tasakaal kaduma, puu välja venima. Eriti eemaldamisega. Vt üht 
eelmist näidet.
Kuidasmoodi saavutada seda, et puu oleks rohkem tasakaalus? Sellisel juhul on võimalik võrduste 
arv ka ilmselt väiksem ja algoritmid muutuvad kiiremaks. 
AVL puu – peaaegu tasakaalus puu. Igale tipule leitakse nn tasakaalutegur – st mõõdetakse ta 
parempoolse haru kõrgus ning vasakpoolse haru kõrgus ning leitakse nende vahe. Võib olla 0, 
+1(parempoolne haru 1 võrra kõrgem kui vasak) või -1 AVL puu puhul. Näitel  rohelisega  kirjas 
tasakaalutegurid. AVL puud saab teha alati!
Hakkame puud ehitama, igal  sammul  arvutame välja kõikide tippude tasakaalutegurid. Seni, kuni 
need on on 0,-1 või +1, ei tee me midagi. Kui mõni läheb lubatud piiridest välja, siis hakkame 
midagi tegema, et tasakaalutegurid uuesti normi viia. Meetod, mida kasut. - puu pööramine ehk 
rotatsioon .
4 olukorda, kus puu ehitamisel enam pole AVL puu. 2 lihtsamad, 2 keerulised.
Lihtsad:  AVL puud(2) – iga pilt kujutab üht fragmenti. Harude kõrgused on „h“. 
U läheb ühe nivoo võrra allapoole, V tuleb ühe nivoo võrra ülespoole, A ja C jäävad oma kohtadele, 
B oli enne V vasakpoolne tütar, nüüd pn ta U parempoolne tütar. Tegemist on jällegi viitade 
ümbertõstmisega, midagi füüsiliselt ümber paigutama ei pea. Probleem tekib aga siis, kui U ei ole 
absoluutne juur, vaid tal on omakorda ematipp. Järelikult tuleb ematipu viitasid vahetada. Aga 
kuidas seda teha, meil pole ju alt üles näitavaid viitasid? Tegelt see lihtne, aga hiljem kunagi 
räägime sellest.
Algoritmid ja andmestruktuurid konspekt - puud #1 Algoritmid ja andmestruktuurid konspekt - puud #2 Algoritmid ja andmestruktuurid konspekt - puud #3
Punktid 10 punkti Autor soovib selle materjali allalaadimise eest saada 10 punkti.
Leheküljed ~ 3 lehte Lehekülgede arv dokumendis
Aeg2013-05-30 Kuupäev, millal dokument üles laeti
Allalaadimisi 93 laadimist Kokku alla laetud
Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
Autor shokohoolik Õppematerjali autor
Puud. Järjestatud puu. järjestamata puu. Kahendotsingu puu. Operatsioonid puudega. AVL puu.

Sarnased õppematerjalid

Algoritmid
16
pdf

Algoritmid

1. Algoritm. Algoritmi omadused. Keerukus. Ajalise keerukuse asümptoodiline hinnang. Erinevad keerukusklassid. Algoritm on mingi meetod probleemi lahendamiseks, mida saab realiseerida arvutiprogrammi abil. Algoritm peab olema määratud nii täpselt, et seda suudaks täita isegi arvuti. Täidetavaid samme ei tohi olla liiga palju. Algoritm peab lahendama ülesande õigesti erinevate sisendandmete korral. Algoritmi 5 olulist omadust: 1. Lõplikkus. Algoritmi töö peab lõppema peale lõpliku arvu sammude läbimist. 2. Määratletus. Algoritmi iga samm peab olema rangelt ja ühemõtteliselt määratud iga juhu jaoks. 3. Sisend. Algoritmil on sisendandmed, mille hulk võib olla null. 4. Väljund. Algoritmil on vastus(ed), millel on täpselt määratud seos sisendandmetega. 5. Efektiivsus (tulemuslikkus). Algoritm peab olema nii lihtne, et on lõpliku ajavahemiku jooksul pliiatsi ja

Analüütiline geomeetria
Algoritmid ja andmestruktuurid eksamiks kordamine
80
pdf

Algoritmid ja andmestruktuurid eksamiks kordamine

1. Algoritm. Algoritmi keerukus. Ajalise keerukuse asümptootiline hinnang. Erinevad keerukusklassid: kirjeldus, näited. 1.1 Algoritm • Mingi meetod probleemi lahendamiseks, mida saab realiseerida arvutiprogrogrammi abil. • Algoritm on õige, kui kõigi sisendite korral, mis vastavalt algoritmi kirjeldusele on lubatud, lõpetab ta töö ja annab tulemuse, mis rahuldab ülesande tingimusi. Öeldakse, et algoritm lahendab arvutusülesande. • Selline programm, mis annab probleemile õige vastuse piiratud aja jooksul. • Kindlalt piiritletud sisendi korral vastab ta järgmistele kriteeriumitele: o lõpetab töö piiratud aja jooksul; o kasutab piiratud hulka mälu; o annab probleemile õige vastuse.

Informaatika
Algoritmid ICD0001 - kordamisküsimused
22
docx

Algoritmid ICD0001 - kordamisküsimused

kiirmeetod Radix sort, O(n) O(n) Stabiilne. positsioonimeetod Merge sort, O(n logn) O(n logn) On enamasti ühildusmeetod stabiilne. Paisktabel, hash O(1) O(1) table Heap sort, O(n logn) O(n logn) kuhjameetod 1. Algoritmi omadused. Algoritmide asümptootiline analüüs: relatsioonid "suur- O", "väike-o", teeta, "suur-oomega" ja "väike-oomega"; nende definitsioonid ning põhiomadused. Mida miski täpselt tähendab. Algoritm on täpne (üheselt mõistetav) juhis antud ülesande lahendamiseks. Algoritm koosneb lõplikust arvust sammudest, millest igaüks on täidetav lõpliku aja jooksul lõplikke ressursse kasutades. Algoritmi rakendatakse teatavale lähteandmete komplektile (sisend)

Algoritmid ja andmestruktuurid
Algoritmid ja andmestruktuurid-puud-kuhjad
22
pdf

Algoritmid ja andmestruktuurid: puud, kuhjad

1.2 Järjestamise kuhjameetod Järjestikalgoritm Luua tühi kuhi; lisada järjendi kirjed järjekorras sinna. 1 Kahendkuhjad 25 1.2 Järjestamise kuhjameetod Keerukus Kui n tähistab kirjete arvu, siis järjendi pealt kuhja tekitamise keerukus on ­ järjestikalgoritmi puhul halvimal juhul (n log n), keskmisel ja parimal juhul (n); ­ "jaga ja valitse" algoritmi puhul alati (n). 1 Kahendkuhjad 26 1.2 Järjestamise kuhjameetod "Jaga ja valitse" algoritm massiivi puhul · Eeltöö -- kompaktse kahendpuu struktuuri loomine -- on triviaal- ne. ­ Etteantud massiivi võib algusest peale käsitleda nii, nagu ta väl- jendaks kompaktset kahendpuud. Positsioonid massiivis määravad alluva-ülemuse suhted ära.

Matemaatika
Teoreetilibe informaatika kordamisküsimused
37
doc

Teoreetilibe informaatika kordamisküsimused

.,tn) on term, mis tähistab puu T alampuud juurega a Idee poolest sama on lrep(T) ­ asendame lihtsalt tipud neile vastavate märgenditega. Puu kroon Kr(T) = string terminaalsete tippude märgenditest vasakult paremale kirjutades. Puu T1 terminaalse tipu A asendamine puuga T2 tähistatakse t = T1{A/T2} Märgendatud järjestatud elementaarpuid saab esitada kontekstivabade grammatikate produktsioonide esitamiseks. Süntaksipuuks KV-grammatikas G = (,N,P,S) nimetatakse märgendatud järjestatud puud t, kui iga r kuulub E(t) korral r p, p kuulub produktsiooni. Ehk siis kui iga puu kaar esitab produktsiooni. Iga puu on üheselt esitatav oma elementaarpuude nimistuna E(t) (elementaarpuu on puu, mis koosneb vaid juurest ja terminaalsetest tippudest). Märgendatud järjestatud elementaarpuu esitab produktsiooni. Mitteterminaalist A on tuletatav lausevorm parajasti siis, kui grammatikas G leidub tuletuspuu A[]. Näidata, et see on tarvilik ja piisav ja tingimus sõna aktsepteerimiseks:

Teoreetiline informaatika
Graafid ja matemaatiline loogika eksamimaterjal
21
docx

Graafid ja matemaatiline loogika eksamimaterjal

mingitel väärtustel Ütleme, et valemitest F1, F2, ... , Fn järeldub valem G, kui igas interpretatsioonis valemite vabade muutujate kõikidel väärtustel, kus valemid F1, F2, ... , Fn on tõesed, on ka valem G tõene Valemeid F ja G nimetatakse samaväärseteks, kui nende tõeväärtused on võrdsed igas interpretatsioonis valemite vabade muutujate kõikidel väärtustel Churchi teoreem: ei leidu algoritmi, mis suudaks suvalise predikaatloogika valemi puhul kindlaks teha, kas valem on samaselt tõene Igasuguse lõpliku võimsusega ja loenduva hulga interpretatsioonide vaatlemine on vajalik, sest saab konstrueerida valemi, mis on tõene parajasti siis, kui kandjas on n elementi, ja saab konstrueerida kehtestatava valemi, mis on väär igas lõpliku kandjaga interpretatsioonis Kui signatuur on lõplik või loenduv, siis loenduvast suuremate kandjate

Algebra I
Diskreetse matemaatika elemendid
92
docx

Diskreetse matemaatika elemendid

Diskreetse matemaatika elemendid 2013/2014 LAUSEARVUTUS. TÕESTUSED. 1. Lausearvutuse lausetele esitatavad tingimused. [1] o Välistatud kolmanda seadus. Iga lause on kas tõene või väär. o Mittevasturääkivuse seadus. Ükski lause ei saa olla nii tõene kui ka väär. o Nende nõuete põhjal kuuluvad vaadeldavate hulka ainult nii sugused laused, mis midagi väidavad, kusjuures sellel väitel on olemas ühene tõeväärtus. o . Välistatud kolmanda seaduse nõudel jäävad kõrvale kõik küsilaused ja paljud hüüdlaused, samuti kõik käsud ning mõttetud sõnaühendid. Mitte-vasturääkivuse seadus välistab mitmesugused paradoksid, näiteks „See lause siin on väär“, ja muud taolised väited, mille tõeväärtust pole võimalik üheselt määrata. o Tehte tulemuseks saadud lause tõeväärtus sõltub ainult komponentlausete tõeväärtustest. 2. Lausearvutuse tehted. Tehete järjekord. Lausearvutuse valem. [1] Tehted o Eitus (märk ¬)

Diskreetne matemaatika
Molekulaarne evolutsioon
58
docx

Molekulaarne evolutsioon

homoplaasiast tulnud. 9. Tegelik puu ja konstrueeritud puu. Tegelik puu on reaalselt toimunud fülogeneesi kujutis. Evolutsioon Maal on unikaalne protsess ja seda kirjeldab ainult üks puu. Enamasti pole see teada. Konstrueeritud puu on tegeliku puu hinnang, fülogeneesi mudel, hüpotees. Konstrueeritakse olemasolevate andmete põhjal. Võib, kuid ei pruugi olla identne tegeliku puuga. Enamasti saab andmetest tuletada mitu puud. 10. Mis on homoloogia, mis homoplaasia (Tooge näiteid!). Homoloogia – tunnus on kahes Homoplaasia – tunnus on kahes vaadeldavas liigis homoloogne, vaadeldavas liigis homoplaasne, kui see on päritud ühiselt kui see on neil liikidel tekkinud eellaselt. sõltumatult. Nt lüsosüüm – erinevaid Nt paralleelse evolutsiooni lüsosüüme esineb mitmetes käigus tekkinud lendorav,

Geneetika




Kommentaarid (0)

Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun