» »

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?

jype ::

Prilepi kodo, ki ne deluje.

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:

         lahkoDodamo(node.left);
         lahkoDodamo(node.right);


Takole naredi:

if (lahkoDodamo(node.left)) return true;
if (lahkoDodamo(node.right)) return true;

Randomness ::

Pa malo polepšaj/preuredi if stavke, ker tole je precej neberljivo.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344333427 (73430) Macketina
»

Predstavitev dvojiškega drevesa z seznamom

Oddelek: Programiranje
141943 (1543) ktka
»

C# IEnumerable problem

Oddelek: Programiranje
121575 (1344) Genetic
»

Izpis XML-ja z JS

Oddelek: Izdelava spletišč
81638 (1581) gnomee
»

[ C ] Kazalci v strukturah

Oddelek: Programiranje
61460 (1353) 64202

Več podobnih tem