Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » binärbaum » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
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.
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
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;
}
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