C:llä puu

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ä.
3433
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

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...
*/
}

Äänestä

malloc(), free() ja struct

Äänestä

"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.

Äänestä

Kommentoi aloitusta


C-aloittelija kirjoitti:

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ä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu