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

Informatiker Board » Themengebiete » Sonstige Fragen » binärbaum » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen binärbaum
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
serus
Grünschnabel


Dabei seit: 05.01.2016
Beiträge: 4

binärbaum Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
06.01.2016 13:37 serus ist offline Beiträge von serus suchen Nehmen Sie serus in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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;
}


__________________
Syntax Highlighting fürs Board (Link)
06.01.2016 13:47 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
serus
Grünschnabel


Dabei seit: 05.01.2016
Beiträge: 4

RE: binärbaum Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
06.01.2016 15:57 serus ist offline Beiträge von serus suchen Nehmen Sie serus in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
06.01.2016 16:05 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » binärbaum