arrayToTree

Status
Nicht offen für weitere Antworten.
B

Bernd1983

Gast
hi, ich habe ein aufsteigend sortiertes Array das ich in einen möglichst ausgeglichen Binärbaum umwandeln soll.
(selbe höhe)

also wenn der Baum nicht ausgeglichen sein müsste würde ich eine schleife durchlaufen lassen und immer die insert methode zuhande nehmen.

da er aber ausgeglichen sein muss, ist das ein problem.????

vieleicht weiss jemand was??

mfg

bernd
 
B

Beni

Gast
Das Element in der Mitte des Arrays als Wurzel nehmen. Jetzt bleiben links und rechts zwei kleiner Teilarrays übrig. Mit diesen kannst du jetzt dasselbe für die Wurzel des linken und des rechten Teilbaumes machen (und per Rekursion gehts weiter...).
 
B

Bernd1983

Gast
hmm und wie könnte das mit code aussehn?

eigentlich brauch ich ja trotzdem die insert mehtode noch
 
B

Bernd1983

Gast
Code:
Node arrayToTree(int [] a,int left,int right){
	 		
	 		if(left<=right){
	 			int mid=(left+right)/2;
	 			
	 		
	 		return new Node(a[mid],arrayToTree(a,left,mid-1),arrayToTree(a,mid+1,right));
	 		}else{
	 			return null;
	 		}
	 	}


habs jetzt so gemacht. Nur mein problem ist das ich nicht einen Node zurückbekommen möchte sondern einen Baum.

??
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben