Mikä olisi järkevä tapa toteuttaa yleinen puurakenne Python 3:lla? Eräässä miettimässäni optimontiongelmassa tarvitsisin puun, jossa solmulla voi olla useita lapsisolmuja ja tällaiseen pitäisi tehdä best-first search.
Riippuu varmasti tavoittesta. Kaipaatko helppoa tapaa, tietyssä tilanteessa tehokkainta tapaa vai erilaisiin tilanteisiin kätevästi taipuvaa tapaa?
Selvintä voisi olla solmun esittäminen yhdellä objektilla, joka sisältää listan lapsisolmuista. Mahdollisesti tehokkaampia mutta vaikeammin luettavia ratkaisuja voi hakea kikkailemalla listoilla ja numeerisilla indekseillä ilman ylimääräisiä objekteja.
Varmaankin olisi hyvä kokeilla ensiksi helppoa tapaa ja katsella mihin se riittää.
Sanakirja (dictionary, {}) toimii monenlaisissa puurakenteissa. Avaimeksi haaran tunniste, arvoksi seuraava sanakirja.
Minulla on juuri tekeillä apuohjelma animaatioiden kasaamiseksi irto freimeistä hyväksikäyttäen PIL-kirjastoa. Ohjelmassa on paljon haarautumisia pitkine funktiokutsuineen ja parametrilistoineen. Haarautumiskohtien tekstin vähentämiseksi käytän rakennetta:
# Määrittely: komento_n = "pitkä_funktion_nimi(pirusti,parametrejä)" ... # Kutsu: kuva_nn = eval(komento_n)
komennot voi lätkiä taulukkoon tai vaikkapa sanakirjaan :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.