Forum » Programiranje » Obhod binarnih (pod)dreves
Obhod binarnih (pod)dreves
i33a ::
Pozdravljeni, rad bi napisal neko funkcijo, ki pri (ne nujno) urejenem binarnem drevesu oz. poddrevesu preveri neko lastnost.
Binarna drevesa imam sestavljena, tako da vsebujejo (int)vredost, ter kazalca na levega in desnega otroka.
Primer je npr. boolean funckija, ki bi preverila, če v (pod)drevesu obstaja kakšna negativna vrednost, ki nima obeh otrok?
Problema sem se lotil rekurzivno, ampak mi nikakor ne deluje. Bi lahko kdo vsaj približno opisal postopek?
Binarna drevesa imam sestavljena, tako da vsebujejo (int)vredost, ter kazalca na levega in desnega otroka.
Primer je npr. boolean funckija, ki bi preverila, če v (pod)drevesu obstaja kakšna negativna vrednost, ki nima obeh otrok?
Problema sem se lotil rekurzivno, ampak mi nikakor ne deluje. Bi lahko kdo vsaj približno opisal postopek?
i33a ::
public boolean lahkoDodamo(BNode node){ if(node == null ) return true; else if(node != null){ if(node.value < 0){ if(node.left == null || node.right == null){ return true; } } lahkoDodamo(node.left); lahkoDodamo(node.right); } return false; }
Vem, da je težava da pride na zadnji return false preden preveri vse možnosti, ampak ne vem kako naj naredim drugače.
Java zahteva return stavek, ker je funkcija tipa boolean. Kako se lotiti takega problema?
jype ::
saj sploh ne preverjaš, kaj ti vrneta:
Takole naredi:
lahkoDodamo(node.left); lahkoDodamo(node.right);
Takole naredi:
if (lahkoDodamo(node.left)) return true; if (lahkoDodamo(node.right)) return true;
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 333427 (73430) | Macketina |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1943 (1543) | ktka |
» | C# IEnumerable problemOddelek: Programiranje | 1575 (1344) | Genetic |
» | Izpis XML-ja z JSOddelek: Izdelava spletišč | 1638 (1581) | gnomee |
» | [ C ] Kazalci v strukturahOddelek: Programiranje | 1460 (1353) | 64202 |