binärbaum

Neue Frage »

Auf diesen Beitrag antworten »
serus binärbaum

Meine Frage:
es geht um ein binärbaum und sein remove Methode
in meiner Aufgabe soll ich Public void remove (E value) bzw einige Hilfsmethode anlegen
1- Eine Methode, die einen Node mit dem Wert value findet und zurückgibt
2-Eine Methode, die die Anzahl der Nachfolger-Nodes eines Node zurückgibt.
3-Eine Methode, die testet ob ein Node der linke bzw. der rechte Nachfolger seines
Vorgngers ist.
4- Eine Methode, die den kleinsten Wert im Baum ab dem rechten Nachfolger eines Node sucht.


Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
private class Node{
	private Node left;
	private Node right;
	private Node parent;
}
public void remove(E value) {

}
public Node remove1 (Node value){
	if(value== null){
		return null;
	}else{
		return value;
	}

	//return value;
}
private int remove2 (){
	int sum1 = 0;
	int sum2= 0;
	Node left;
	Node right;
	if(left!= null){
		sum1 = left.remove1();
	}

	if(right != null){
		sum2 = right.remove1();
	}
	return 1 + sum1 + sum2;
}


Edit: [code]-Umgebung und Formatierung --Karlito
 
Auf diesen Beitrag antworten »
eulerscheZahl

Abed, bist du das?

Die Anzahl der Nachfolger mache ich dir:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
public int countChilds() {
    return countChildsRecurs() - 1; //es sollen nur die Nachfolger gezählt werden, also den Knoten selbst wieder abziehen
}

private int countChildsRecurs() {
    int result = 1; //der aktuelle Knoten
    if (left != null) result += left.countChildsRecurs();
    if (right != null) result += right.countChildsRecurs();
    return result;
}
Auf diesen Beitrag antworten »
serus RE: binärbaum

jz hab ich kappiert aber ich hab Frage
dein Code berechnet die Nachfolger nur ein knote oder?
wie wird es berechnet, wenn es im Baum mehr als ein knote gibt?

und fuer 3 und 4 kriege ich eine Idee smile

danke
Auf diesen Beitrag antworten »
eulerscheZahl

Ich ermittle die Zahl aller Nachfolger des Knotens, von dem aus die Funktion aufgerufen wird.

3.: Du hast du den parent Node.
wenn parent.right == this, dann ist der Knoten ein rechter Kindknoten. Achtung: für die Wurzel ist parent null.

4.: Darf ich davon ausgehen, dass der Baum sortiert ist? Das ändert nämlich das Vorgehen und die benötigte Laufzeit.
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »