C:llä puu

C-aloittelija

Miten C:llä voi tehdä puurakenteen? Tartteisin puun, jossa jokaisessa solmussa käsitellään 2d-taulukkoa ja solmussa aina taulukkoon lisätään tiettyjä lukuja ja jos esimerkiksi haluan päivittää tiettyyn solmuun luvun 205, niin sille annettaisiin kohta (x,y) mistä aloittaa ja luvut tallennettaisiin merkkijonoina '2','0','5','\0'. Solmulla tulisi olla vaihtelevä määrä lapsia. Jotenkin opiskeluaikana totuin olioihin ja nyt haluaisin opetella itsenäisesti toteuttamaan kaikennäköisiä asioita C:llä.

3

408

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ..

      Eli jokaisella solmulla on 4 lasta. Tai sitten BSP-puu. Eli alue jaetaan aina puoliksi. Molemmissa on etuna nopea hakuaika x,y-koordinaattejen suhteen.

      Kun quadtreehen lisätään, ja solmussa johon lisätään uusi tieto on jo jotain jaat aina neliön pienempiin osiin. Melko helppo ja tehokas tietorakenne.


      Ts. tänne päin. Voi olla syntaksissa virheitä, kun on 10 vuotta siitä kun C:tä olen kirjoittanut. Periaate on oikein.

      typedef struct quadtree
      {
      data (tai pointteri dataan);
      quadtree * vasenyla;
      quadtree * oikeayla;
      quadtree * vasenala;
      quadtree * oikeaala;
      /* tai
      quadtree[4] * neljannes;
      ei tosin paljon eroa koska vasenyla voi myös indeksoida...
      */
      }

    • malloc(), free() ja struct

    • juupaj

      "Jotenkin opiskeluaikana totuin olioihin ja nyt haluaisin opetella itsenäisesti toteuttamaan kaikennäköisiä asioita C:llä."

      Aa, ok, sitten homma on helppo. Teet toteutuksen ihan niin kuin oliokielellä, mutta jätät kaikkia aksessorit pois ja korvaat niiden käytön suorilla jäsenmuuttujaviittauksilla. Ja metodien tilalle laitat funktioita kuten method(this, args), jossa this on se tilan sisältävä struktuuri ja args-muuttujassa ovat ne argumentit mitä antaisit normaalisti jäsenfunktiolle.

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

    Luetuimmat keskustelut

    1. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      202
      4228
    2. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      146
      3778
    3. Orpo: Velkajarrua vastustavaa puoluetta vaikea ajatella hallitukseen

      No Minja Koskelan kommunistipuolue jäi ulos tuosta. Kaikki eduskuntapuolueet vasemmistoliittoa lukuun ottamatta sopivat
      Maailman menoa
      114
      3194
    4. Hienoa! Eduskunta luopui käteisen käytöstä

      Nyt tuo sama muutos pitää saada myös muuhun yhteiskuntaan. Käteistähän ei tarvitse tänä päivänä enää kuin rikolliset.
      Maailman menoa
      43
      1589
    5. Ikävä sinua mies

      Vuosia kuluu, mutta tunteet ei ole hävinnyt. Tasoittuneet toki, kun ei olla nähty. Järki palannut päähän kuitenkin. Se i
      Ikävä
      19
      1458
    6. Mikä tämä henkilö mahtaa touhuta Parkanossa

      Kamalaa https://www.ylasatakunta.fi/teksti/pirkanmaan-karajaoikeus-vangitsi-koiran-tappamisesta-epaillyn-6.68.127794.b58
      Parkano
      34
      1390
    7. Sulla on avaimet ja keinot

      Jos haluat jatkaa tutustumista. Itse olen niin jäässä etten pysty tekemään enää mitään. Pidempi keppi johon on helpompi
      Ikävä
      25
      1375
    8. Orpo loukkaantui fasismiin viittaavasta sanavalinnasta

      Mutta miksi loukkaantui? Orpohan on tehnyt yhteistyötä fasistien kanssa jo vuonna 2019, siis jo neljä vuotta ennen loukk
      Maailman menoa
      27
      1351
    9. Kiinnostaa - ei kiinnosta - kiinnostaapas

      Selittäkää hämmentyneelle miksi miehiä ei ikinä kiinnosta silloin, kun sitä olisi itsekin kiinnostunut? Sitten kun siirt
      Sinkut
      116
      1140
    10. Martina haluaa Marbellaan

      Martinan tekisi mieli ottaa lennot Marbellaan, jossa näkisisi kauniita ja hyväntuulisia ihmisiä. No sitten pitää matkust
      Kotimaiset julkkisjuorut
      215
      1053
    Aihe