Keko; binääripuu; linkitetty rakenne; miten löytyy "last"?

epät. koodari

Eli ongelma lyhykäisyydessään:

On olemassa keko, joka on linkitettynä rakenteena toteutettu binääripuu, jolle pitäisi tehdä insert yms. operaatioita.

Millä algoritmilla (myös mikä tahansa ohjelmointikieli/pseudokoodi/linkki kelpaa), miten linkitetystä puurakenteesta löytyy se paikka, jonne seuraava operaatio tehdään?

Eli, miten päivitetään muuttuja "last", joka viittaa viimeisimpään kekoon lisättyyn alkioon? Ja siis ennen kaikkea, millä algoritmilla tuo "last" päivitetään, jos halutaan tietää esim. seuraava paikka, jonne lisäys pitää tehdä?

3

1075

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Nimimerkki

      Seuraavan objektin paikkahan riippuu täysin tietorakenteesta johon (ja objektin jonka) haluat tietoja syöttää. Jos käytät jotain järjestettyä puuta, alkio laitetaan puussa oikealle paikalleen, järjestämättömässä linkitetyssä listassa alkoi laitetaan listan viimeiseksi jne... Eli binääripuun tapauksessa sinulla ei voi olla tiedossa mihin seuraava alkoi puussa laitetaan, ennen kuin tiedät mikä alkio syötetään.

      Linkki viimeisimpään alkioon on helppo ylläpitää, mutta siitä ei ole iloa kun halutaan syöttää seuraava arvo. AVL-puu tai puna-musta-puu hauilla netistä löytyy varmasti vinkkiä. Toisaalta esimerkiksi Javassa on valmiina tuommoiset tietorakenteet (java.util.*), jos sinun ei koulua varten tarvitse moisia tehdä uudestaan.

      • epät. koodari

        Keko-rakenne jo itsessään sanelee aika paljon sitä, miten binääripuu pitää rakentaa. Siinä uusi alkio lisätään aina ensin keon viimeiseksi alkioksi ja sitten kuplitaan ylöspäin omalle paikalleen avaimen arvon perusteella.

        Mutta, nou hätä. Ratkaisin jo ongelman ja joo, koulua varten tätä moskaa pitää pähkäillä...


      • taulukkona
        epät. koodari kirjoitti:

        Keko-rakenne jo itsessään sanelee aika paljon sitä, miten binääripuu pitää rakentaa. Siinä uusi alkio lisätään aina ensin keon viimeiseksi alkioksi ja sitten kuplitaan ylöspäin omalle paikalleen avaimen arvon perusteella.

        Mutta, nou hätä. Ratkaisin jo ongelman ja joo, koulua varten tätä moskaa pitää pähkäillä...

        toteutettuna on paljon nopeampi!


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. YLE Äänekosken kaupunginjohtaja saa ankaraa arvostelua

      Kaupungin johtaja saa ankaraa kritiikkiä äkkiväärästä henkilöstöjohtamisestaan. Uusin häirintäilmoitus päivätty 15 kesä
      Äänekoski
      91
      1929
    2. Euroopan lämpöennätys, 48,8, astetta, on mitattu Italian Sisiliassa

      Joko hitaampikin ymmärtää. Se on aivan liikaa. Ilmastonmuutos on totta Euroopassakin.
      Maailman menoa
      278
      1761
    3. Asiakas iski kaupassa varastelua tehneen kanveesiin.

      https://www.iltalehti.fi/kotimaa/a/33a85463-e4d5-45ed-8014-db51fe8079ec Oikein. Näin sitä pitää. Kyllä kaupoissa valtava
      Maailman menoa
      305
      1560
    4. Martina lähdössä Ibizalle

      Eikä Eskokaan tiennyt matkasta. Nyt ollaan jännän äärellä.
      Kotimaiset julkkisjuorut
      180
      1442
    5. Jos ei tiedä mitä toisesta haluaa

      Älä missään nimessä anna mitään merkkejä kiinnostuksesta. Ole haluamatta mitään. Täytyy ajatella toistakin. Ei kukaan em
      Ikävä
      88
      1038
    6. Määpä tiijän että rakastat

      Minua nimittäin. Samoin hei! Olet mun vastakappaleeni.
      Ikävä
      51
      1007
    7. Avustikset peruttu.

      Aettokosken ampuraan rahat otettu poekkeen valtiolle.
      Suomussalmi
      56
      977
    8. Se nainen näyttää hyvältä vaikka painaisi 150kg

      parempi vaan jos on vähän muhkeammassa kunnossa 🤤
      Ikävä
      56
      968
    9. 67
      944
    10. Miksi mies tuntee näin?

      Eli olen mies ja ihastuin naiseen. Tykkään hänestä ja koskaan hän ei ole ollut minulle ilkeä. Silti ajoittain tunnen kui
      Ikävä
      40
      941
    Aihe