Baum Knoten löschen

Hi Leute,
ich bin ein totaler Java Anfänger und benötige dringend Eure Hilfe:)

Ich möchte einen Knoten aus einem Baum löschen, aber stehe total auf dem Schlauch...
Mein erstes Problem ist, wie finde ich den Knoten am Besten, also wie muss ich den Baum am Besten durchgehen???
Das Löschen müsste dann ja funktionieren, indem ich den Knoten gleich 0 setze.
Nun meine nächts Frage ist wie verschiebe ich den Baum danach am effektifsten???

Ich weiß, dass wenn man ein Blatt löscht, muss nichts verschoben werden, wenn der Knoten ein Kind setzt ihn durch sein Kind und wenn er zwei Kinder hat, erstetze ihn mit dem größten Knoten im von ihm aus linken Zweig.

Danke für Eure Hilfe :)
 

eMmiE

Bekanntes Mitglied
Wenn du einen Knoten einfach null setzen würdest, würdest du zwar damit die Verbindung lahm legen, aber die unterknoten und Blätter wären theoretisch noch erreichbar.
Die musst du natürlcih auch 0 setzen.

Zu deiner Frage: Ich kann nur helfen, wenn ich ein Code-Beispiel sehe oder so was, sonst ist das alles nur Theorie:rtfm:

Gruß eMmiE
 
ahh okay danke
hier ist mein bisheriger Code:

Java:
package aufgabe2;

import de.tu.tree.BinNode;


public class BinTreeNode implements BinNode<Integer> {
	
	
	Integer data;
	BinTreeNode left;
	BinTreeNode right;
	
	public BinTreeNode(Integer data) {
		this.data = data;
	}

	public Integer getData() {
		return data;
	}

	public void setData(Integer data) {
		this.data = data;
	}

	public BinTreeNode getLeft() {
		return left;
	}

	public void setLeft(BinTreeNode left) {
		this.left = left;
	}

	public BinTreeNode getRight() {
		return right;
	}

	public void setRight(BinTreeNode right) {
		this.right = right;
	}

	public boolean isLeaf() {
		return right == null && left == null;
	}
	
	public String toString(){
		return data.toString();
	}
	
	
}




package aufgabe2;

import java.util.LinkedList;

import de.tu.tree.Tree;

public class BinarySearchTree implements Tree<Integer> {

	protected BinTreeNode root;
	protected int size = 0;
	private boolean dataAlreadyExisted; 		//Gibt an, ob es den einzufügenden Wert im Baum bereits gibt.

	public BinarySearchTree() {
		this.root = null;
	}

	public BinarySearchTree(BinTreeNode n) {
		root = n;
	}

	public boolean insert(Integer data) {
		
		if (data != null) {						//Kann nur einfügen, wenn auch ein gültiger Wert übergeben wird.
			this.dataAlreadyExisted = false;		//Den Wert gibt es bisher noch nicht.
			this.root = insert(data, this.root);	//Rufe die zweite insert-Methode auf, um den Wert einzufügen.
			
			return this.dataAlreadyExisted;			//Gebe zurück, ob der Wert existiert oder nicht.
		}
		return false;								//Gebe false zurück, falls der Wert null ist.
	}

	private BinTreeNode insert(Integer data, BinTreeNode root) {
		if (root == null) {											//Einfügen in einem Blatt oder wenn der Baum leer ist. Wurzel des Teilbaums ist null, wenn Blatt oder Baum leer.
			this.size++;											//Erhöhe den Wert um 1.
		
			return new BinTreeNode(data);							//Erstelle den neuen Baum.
		
		} else {													//Wir sind noch an keinem Blatt angekommen und suchen weiter!
			if (data.compareTo(root.getData()) < 0) {				//Wir suchen im linken Teilbaum weiter, da der neue Wert kleiner als die Wurzel ist.
				root.setLeft(insert(data, root.getLeft()));			//Rufe rekursiv insert wieder auf für den neuen Teilbaum und setze dann den linken Teilbaum neu!
			
			} else if (data.compareTo(root.getData()) > 0) {		//Wert ist größer als die Wurzel also suchen wir im rechten Teilbaum weiter.
				root.setRight(insert(data, root.getRight()));		  //Rufe rekursive insert wieder auf für den neuen Teilbaum und setze dann den rechten Teilbaum neu.
			
			} else {											//Den Wert gibt es schon im Baum.
				this.dataAlreadyExisted = true;	//Gebe den Baum einfach zurück und setze Boolean auf true.
			}
			return root;
		}
	}

	
	public boolean remove(Integer i) {               // HIER IST MEIN PROBLEM BEREICH!!!
			
			
			return false;
	}

Danke im Vorraus :)
 
Zuletzt bearbeitet:

eMmiE

Bekanntes Mitglied
Bei dem remove musst du erstmal den Knoten mit dem Wert suchen, wie im insert().
Den Rest hast du eigentlich schon geschrieben:
Wenn er nur Blatt ist, dann setzt du ihn einfach 0.
Das geht meiner Meinung nach so:
Code:
Pseudo Code:
if(Knoten.links = wert || Knoten.rechts = wert) {
  if (Knoten.links = wert) {
     if (Knoten.links.isLeaf()) {
       Knoten.links = null;
     } else if (Knoten.unterknotenanzahl < 2) {
       Knoten.links = Knoten.links.getLeft();
     } else {
       //größeren Knoten nehmen
     }
  } else {
  //rechts ebenso
  }
} sonst {
  if (wert < Knoten.links) {
     untersucheKnoten(Knoten.links);
  } else if (wert > Knoten.rechts) {
     untersucheKnoten(Knoten.rechts)
  } else {
     //nicht enthalten
  }
}
 
vielen Dank schon mal für deine Hilfe, aber ich stelle mich ziemlich dumm an...
Ich habe es mal probiert, aber ich kriege es nicht hin, dass der den knoten findet(Problem ist markiert), und ich weiß nicht ob der Rest so klappt(letzter Fall ist noch nicht komplett.
Vielen Dank schon mal im Voraus :)

Java:
	public boolean remove(Integer i) {
		
		if(root == null || i == null){
		return false;
		}
		else if(i.compareTo(root.getData()) < 0) {		// Wir suchen im linken Teilbaum, da der Wert kleiner als die Wurzel ist.
			root.left.remove(i);								//PROBLEM!!! suchen im linken Teilbaum
			}
		else if (i.compareTo(root.getData()) > 0) {				// Wert ist größer als die Wurzel also suchen wir im rechten Teilbaum weiter.
			root.setRight(insert(i, root.getRight()));		// Rufe rekursiv insert wieder auf für den neuen Teilbaum und setze dann den rechten Teilbaum neu!
			}	
		if(root.isLeaf()) {								// kein Nachfolger; Fall 1
				root = null; 									// gefundenen Knoten einfach vernichten
				return true;
			}
		else if (root.right.isLeaf() || root.left.isLeaf()){	// Ein Nachfolger; Fall 2
			if (root.right == null){							// Falls der rechte Zweig "leer" ist
				root = root.left;						// Der alte Knoten wird durch den linken Zweig ersetzt 
			}
		else if (root.left == null){						// Falls der linke Zweig "leer" ist
			root = root.right;						// Der alte Knoten wird durch den rechten Zweig ersetzt 	
			}
		else if (root.right != null && root.left != null){	// Zwei Nachfolger; Fall 3
			
		}
			
		}
		
		else
				return false;
				}
 

eMmiE

Bekanntes Mitglied
Warum machst du einen Unterschied dabei, ob du links oder rechts weitersuchst?

Wenn remove aufgerufen wird, egal von welchem Knoten, dann musst du zuerst gucken, ob der Knoten den Wert hat
Code:
Eingabe: i
if (Knoten.value == i) {
  //hier entfernst du nach den verschiedenen Modi
} else {
  if (Knoten.left < i && Knoten.right > i) {
    return false; //-> nicht vorhanden
  } else {
    if (Knoten.left > i) {
      Knoten.left.remove(i);
    } else {
      Knoten.right.remove(i);
    }
  }
}

Das mit den verschiedenen Modi, bitte ich dich, probier mal bitte selbst:idea:

Gruß eMmiE
 
L

lenuyx

Gast
hallo,

vielleicht kann ich ein wenig helfen, ich habe den Stoff gerade auch behandelt und habe auch eine Lösung.

zunächst ein paar Fragen:

handelt es sich um einen binären Suchbaum?
falls ja:
soll der Baum nach dem löschen eines Knotens wieder ein binärer Suchbaum sein?
kennst du die einzelnen Fälle die auftreten können? (Knoten == Kind // Knoten == Wurzel usw.)
falls nein:
bist du sicher das du nur den Wert im Knoten löschen willst? denn ein leerer Knoten ist unschön.

im Anhang befindet sich eine Löschmethode die die "Fälle" umgeht und immer eine Wurzel löscht.
d.h. es wird so lange ein linker/rechter Teilbaum genommen bis der zu löschende Knote in diesem die Wurzel darstellt. Diese wird gelöscht und der Teilbaum wird dem "Mutter"-Baum wieder angehängt.

hoffe ich konnte ein wenig helfen ;)

Java:
public void delete(Game e){
		if(!isEmpty()){
			if(root.getValue().compareTo(e) == -1){
				deleteRecursiv(e, getRight(), this);
			}else{
				if(root.getValue().compareTo(e) == 1){
					deleteRecursiv(e, getLeft(), this);
				}else{
					deleteRoot();
				}
			}
		}
	}
	
	private void deleteRecursiv(Game e, Tree n, Tree parent){
		if(!n.isEmpty()){
			if(parent.root.getValue().compareTo(e) == 1){
				if(n.root.getValue().compareTo(e) == 0){
					n.deleteRoot();
					parent.setLeft(n);
				}else{
					if(n.root.getValue().compareTo(e) == 1){
						if(parent.getLeft().root.getValue().compareTo(n.root.getValue()) == 0){
							deleteRecursiv(e, n.getLeft(), parent.getLeft());
						}else{
							deleteRecursiv(e, n.getLeft(), parent.getRight());
						}
					}else{
						if(n.root.getValue().compareTo(e) == -1){
							if(parent.getLeft().root.getValue().compareTo(n.root.getValue()) == 0){
								deleteRecursiv(e, n.getRight(), parent.getLeft());
							}else{
								deleteRecursiv(e, n.getRight(), parent.getRight());
							}
						}
					}
				}
			}else{
				if(n.root.getValue().compareTo(e) == 0){
					n.deleteRoot();
					parent.setRight(n);
				}else{
					if(n.root.getValue().compareTo(e) == 1){
						if(parent.getRight().root.getValue().compareTo(n.root.getValue()) == 0){
							deleteRecursiv(e, n.getLeft(), parent.getRight());
						}else{
							deleteRecursiv(e, n.getLeft(), parent.getLeft());
						}
					}else{
						if(n.root.getValue().compareTo(e) == -1){
							if(parent.getRight().root.getValue().compareTo(n.root.getValue()) == 0){
								deleteRecursiv(e, n.getRight(), parent.getRight());
							}else{
								deleteRecursiv(e, n.getRight(), parent.getLeft());
							}
						}
					}
				}
			}
		}
	}
	
	private void deleteRoot(){
		if(root.getLeft() == null){
			root = root.getRight();
		}else{
			if(root.getRight() == null){
				root = root.getLeft();
			}else{
				Node parent = root.getLeft();
				if(parent.getRight() == null){
					parent.setRight(root.getRight());
					root = parent;
				}else{
					while (parent.getRight().getRight() != null){
						parent = parent.getRight();
					}
					Node temp = parent.getRight();
					parent.setRight(temp.getLeft());
					temp.setLeft(root.getLeft());
					temp.setRight(root.getRight());
					root = temp;
				}
			}
		}
	}
 
Zuletzt bearbeitet von einem Moderator:
Danke schon mal an euch beide, iht habt mir geholfen :)

Ich habe es jetzt so:
Java:
public boolean remove(Integer i) {
		
		if(root == null || i == null){
		return false;
		}
		if (root.getData() == i){							// falls der gesuchte Knoten gefunden wurde
			if(root.isLeaf()) {									// kein Nachfolger; Fall 1
				root = null; 									// gefundenen Knoten einfach vernichten
				size--;
				return true;
			}
		else if (root.right.isLeaf() || root.left.isLeaf()){	// Ein Nachfolger; Fall 2
			if (root.right == null){							// Falls der rechte Zweig "leer" ist
				root = root.left;								// Der alte Knoten wird durch den linken Zweig ersetzt 
				size--;
			}
		else if (root.left == null){						// Falls der linke Zweig "leer" ist
			root = root.right;								// Der alte Knoten wird durch den rechten Zweig ersetzt 	
			size--;
		}
		//else if (root.right != null && root.left != null){	// Zwei Nachfolger; Fall  mache ich wenn durchlaufen klappt
		//}
			
		}
		
		else {
		if(i.compareTo(root.getData()) < 0) {				// Wir suchen im linken Teilbaum, da der Wert kleiner als die Wurzel ist.
			root.left.remove(i);							//PROBLEM!!! suchen im linken Teilbaum
			}
		else if (i.compareTo(root.getData()) > 0) {				// Wert ist größer als die Wurzel also suchen wir im rechten Teilbaum weiter.
			root.right.remove(i);								//PROBLEM!!! Rufe rekursiv remove wieder auf für den neuen Teilbaum und setze dann den rechten Teilbaum neu!
			}	
		}
		}
				return false;
		
				}

Mein Problem ist nur, dass die rekursiven Methoden:
Java:
root.left.remove(i);
nicht funktionieren, da kommt die Fehlermeldung "the method(remove Integer) is undifined for the type BinTreeNode"
Ohne diese Methode kann ich den Baum nicht durchlaufen, hat jemand eine Idee?
 
L

lenuyx

Gast
sehe ich das richtig?

du rufst deine delete Methode mit "baum".remove(int i); auf und dann willst du das root.getleft().remove(int i); auch funktioniert?

ich glaube der fehler liegt darin das du mit root.left einen knoten bekommst und keinen teilbaum oder?

d.h. du führst eine Methode die für bäume gedacht ist auf einen knoten aus.


kleine Zusammenfassung eines bsp. für Funktionen der Klassen Node und Tree:

Java:
//class Node:

private Node left;
private Node right;
private int value;

//konstruktor:

public Node (int v,Node l,Node r) {
		value = v;
		left = l; 
		right = r;
	}

//funktionen:

jeweils getter + setter für value,left,right.


//class Tree:

private Node root;

//konstruktor:

public Tree(){
	root = null;
	}

//funktionen:

public Tree getLeft()
public void setLeft(Tree n)
nochmal mit right
public boolean isEmpty()

public void insert(int i)

public boolean delete(int i) // 1 fall + aufruf der rekursiveDelete

private void rekursiveDelete(int i, ****hier müssen noch einige Nodes übergeben werden****) // aufruf deleteNode
private void deleteNode(****hier müssen noch einige Nodes übergeben werden****) // hier wird ein knoten gelöscht 3 fälle berücksichtigt
private void deleteRoot() //1 fall evtl boolean als rückgabetyp
 
Zuletzt bearbeitet von einem Moderator:
Okay habs denke ich verstanden und habe es jetzt so(erst mal nur um ein blatt zu löschen):
aber er löscht irgendwie immer den kompletten baum also alles aber warum???
ich verzweifle.... :(
Java:
public boolean remove(Integer i) {
		
		this.root = ueberpruefeKinder(i, this.root);
	
		if(root == null){							// falls der knoten null ist oder null gelöscht werden soll
		return false;								// gebe false zurück
		}
		
		else if(root.isLeaf()) {							// kein Nachfolger; Fall 1
			root = null; 									// gefundenen Knoten einfach vernichten
			size--;											// size -1
			return true	;								// gebe true zurück
			}
		
		//else if (root.right.isLeaf() || root.left.isLeaf()){	// Ein Nachfolger; Fall 2
			//if (root.right == null){							// Falls der rechte Zweig "leer" ist
				//root = root.getLeft();							// Problem!!! er soll den ganzen teilbaum ra n hänegn und nicht nur den nächtsen knoten!! //Der alte Knoten wird durch den linken Zweig ersetzt 
				//size--;											// size - 1
			//}
		//else if (root.left == null){						// Falls der linke Zweig "leer" ist
			//root = root.getRight();							// Problem!!! er soll den ganzen teilbaum ra n hänegn und nicht nur den nächtsen knoten!!// Der alte Knoten wird durch den rechten Zweig ersetzt 	
			//size--;											// size - 1
		//}
		//else if (root.right != null && root.left != null){	// Zwei Nachfolger; Fall 3	
			
			//	root = root.left;							// Knoten ist gleich der oberste Knoten seines linken teilbaumes
				//if (root.right == null){					// wenn der knoten keinen rechten teilbaum hat 
					
				//}
					//i.compareTo(root.getData()
			
		//}
			
		//}
		//}
				return false;
		
		
				}
	
	public BinTreeNode ueberpruefeKinder(Integer i, BinTreeNode root){
		if(root.getData() == null || i == null){
			return null;
		}
		else if (root.getData() == i){
			return root;	 
			}
		else if(i.compareTo(root.getData()) < 0){
			return ueberpruefeKinder(i, root.left);
		}
		else if (i.compareTo(root.getData()) > 0) {
			return ueberpruefeKinder(i, root.right);
		}
		
		return root;
	}
 
L

lenuyx

Gast
könntest du evtl. alle deine Klassen zu dem Projekt hochladen? ich würde das ganze mal bei mir aufspielen und testen. (bitte nicht als Java code hier im Forum da ich via copy/paste keine zeilenumbrüche habe)

wir könnten uns auch direkt via Skype oder TS unterhalten wenn du magst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
G AVL-Baum Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Baum Java Basics - Anfänger-Themen 8
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Interface Baum visualisieren Java Basics - Anfänger-Themen 37
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
L Traversierungsverfahren Baum: LevelOrder Java Basics - Anfänger-Themen 17
L Rekursion im Baum Java Basics - Anfänger-Themen 9
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 4
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
R Baum erzeugen Java Basics - Anfänger-Themen 61
B Baum Traversierung Postorder Java Basics - Anfänger-Themen 6
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
A Voller Baum Java Basics - Anfänger-Themen 7
S n-ärer Baum Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
C kompletter baum Java Basics - Anfänger-Themen 2
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
M Baum Code kurze frage ... Java Basics - Anfänger-Themen 6
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
A min() Methode Baum Java Basics - Anfänger-Themen 1
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
Screen 2,4 Baum Frage Java Basics - Anfänger-Themen 6
T Rot-schwarz Baum Problem Java Basics - Anfänger-Themen 3
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
C 2-3 Baum Java Basics - Anfänger-Themen 6
H Baum Java Basics - Anfänger-Themen 4
L Rot Scharz Baum von Binärbaum erben Java Basics - Anfänger-Themen 9
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
L eigenen Baum schreiben Java Basics - Anfänger-Themen 5
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
S Das reinschreiben einer Klasse in den Baum Java Basics - Anfänger-Themen 6
A Baum mit geometricfigur Werte Java Basics - Anfänger-Themen 6
D Datentypen Einfügen im RotSchwarz Baum Java Basics - Anfänger-Themen 2
F FileSystem in Baum darstellen/wurzel festlegen Java Basics - Anfänger-Themen 3
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
I Baum graphisch darstellen Java Basics - Anfänger-Themen 2
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
L Baum Swing AVL Java Basics - Anfänger-Themen 4
Binary.Coder 2-3-4 Baum vs. (2,4) Baum Java Basics - Anfänger-Themen 2
ModellbahnerTT Ab-Baum Applet Java Basics - Anfänger-Themen 3
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
H Baum Java Basics - Anfänger-Themen 11
G AVL Baum Java Basics - Anfänger-Themen 20
J Baum spiegeln Java Basics - Anfänger-Themen 7
N 2-3 Baum, Einfügen Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
V Baum mit log n Aufwand für Einfügen und Löschen und. Java Basics - Anfänger-Themen 5
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
G universeller baum Java Basics - Anfänger-Themen 13
G Baum testen Java Basics - Anfänger-Themen 20
B Array To Baum Java Basics - Anfänger-Themen 2
B Baum to Array Java Basics - Anfänger-Themen 17
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
R Pythagoras-Baum Java Basics - Anfänger-Themen 5
W Baum durchlaufen Java Basics - Anfänger-Themen 3
T binärer Baum Java Basics - Anfänger-Themen 3
P allg. Baum aus Liste Java Basics - Anfänger-Themen 2
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
R binärer Baum Java Basics - Anfänger-Themen 2
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
Cassy3 Binärer Suchbaum Knoten rauslöschen Java Basics - Anfänger-Themen 1
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
Y Wie greift man auf die Knoten in einem Binärbaum zu? Java Basics - Anfänger-Themen 5
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
S Binärbäume knoten zählen Java Basics - Anfänger-Themen 16
T Collections Methode (Knoten hinzufügen) für Graphen Java Basics - Anfänger-Themen 32
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
G Binärer Suchbaum Knoten zählen Java Basics - Anfänger-Themen 1
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
E Knoten eines Baumes unter Bedinung zählen Java Basics - Anfänger-Themen 2
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben