Skip to content

Commit

Permalink
korjattu virheelliset binääripuut
Browse files Browse the repository at this point in the history
  • Loading branch information
karkkieila authored Sep 18, 2024
1 parent b0e3ebc commit 100a839
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions data/osa-11/4-lisaa-esimerkkeja.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ Tässä osiossa

Rekursion todellinen hyöty tulee esiin tilanteissa, joissa iteratiivinen ratkaisu on hankala kirjoittaa. Tarkastellaan esimerkkinä _binääripuuta_. Binääripuulla tarkoitetaan puurakennetta, jossa jokaisella alkiolla on korkeintaan kaksi "lasta". Binääripuu voisi siis näyttää esim. tältä (huomaa, että vaikka tietojenkäsittelijöitä pidetään joissain yhteyksissä luonnontieteilijöinä, käsityksemme puiden kasvusuunnasta on nurinkurinen):

<img src="11_4_1.png">
<img src="11_4_1_2.png">

Binääripuiden (ja puiden yleensäkin) käsittely rekursiivisesti on ainakin teoriassa helppoa: jos halutaan tehdä jokin operaatio binääripuun kaikille alkioille - esim. etsiä jokin tietty alkio puusta, voidaan kirjoittaa rekursiivinen algoritmi, joka

1. Käsittelee nykyisen alkion
2. Kutsuu itseään vasemmasta lapsesta alkavalle "alipuulle"
3. Kutsuu itseään oikeasta lapsesta alkavalle "alipuulle"

<img src="11_4_2.png">
<img src="11_4_2_2.png">

Kun koko rekursiivinen algoritmi on käsitelty, on vierailtu kerran puun jokaisessa solussa. Iteratiivinen versio algoritmista on yleensä hankalampi kirjoittaa, koska kirjanpito vieralluista alkioista menee äkkiä monimutkaiseksi.

Expand Down

0 comments on commit 100a839

Please sign in to comment.