Sigdal Skrevet 6. august 2010 Del Skrevet 6. august 2010 Jeg trenger å lage en selvstendig kopi av en trestruktur bestående av ett visst antall noder. Nodeklassen inneholder to int variabler, noen aksessorfunksjoner for å lese/skrive til disse og to pointere som linker til nodene under (venstre og høyre). Finnes det en enkel måte å lage en selvstendig kopi av ett slikt tre - eksempelvis tenker jeg en løsning kunne være å kopiere hele 'blokken av noder' som utgjør treet og samtidig skifte pointeradressene, slik at disse har intern konsistens ifht den nye kopien av treet. Er noe sånt mulig i c++? Eller er jeg nødt å lage egen kode som traverserer det gamle treet og lager duplikater av nodene med oppdaterte pointere, node for node? (tungvint). Lenke til kommentar
LostOblivion Skrevet 8. august 2010 Del Skrevet 8. august 2010 Du må gjøre det siste. Lenke til kommentar
Sigdal Skrevet 8. august 2010 Forfatter Del Skrevet 8. august 2010 Hadde vært enklere om det fantes en highlevel funksjon i C++ for å gjøre det, men fikk det til. Lenke til kommentar
[kami] Skrevet 9. august 2010 Del Skrevet 9. august 2010 (endret) glem det, leste ikke spm ordentlig det smarteste er nok å traversere treet selv og fikse pekerene. Men du bør kanskje tenke på, burde treet i det hele tatt ha pekere til nodene under seg? om de ikke var pekere kunne du bare kopiert hele greia med memcopy eller noe. Endret 9. august 2010 av [kami] Lenke til kommentar
Sigdal Skrevet 9. august 2010 Forfatter Del Skrevet 9. august 2010 (endret) ' date=' 9. august 2010 - 11:13' timestamp='1281345226' post='16049246']glem det, leste ikke spm ordentlig det smarteste er nok å traversere treet selv og fikse pekerene. Men du bør kanskje tenke på, burde treet i det hele tatt ha pekere til nodene under seg? om de ikke var pekere kunne du bare kopiert hele greia med memcopy eller noe. Implementerte det med traversering og ble ferdig med det Endret 9. august 2010 av Sigdal Lenke til kommentar
LostOblivion Skrevet 9. august 2010 Del Skrevet 9. august 2010 (endret) Med mindre left og right er offsets til et dataområde, kan dette ikke gjøres på noen annen måte. Endret 9. august 2010 av LostOblivion Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå