Hey Leute,
ich habe als Aufgabe eine Tiefen- und eine Breitensuche mit Hilfe der Datenstruckturen Stack und Warteschlange zu realisieren. Doch habe ich damit größere Probleme. Soweit bin ich bis jetzt.
Das diese Algorithemen höchstwahrscheinlich nicht ganz klappen werden, bin ich mir bewusst. Mein Frage bezieht sich auf die Anweisung super.push, super.pop. super.enqueue und super dequeue. Denn bei diesen 4 Anweisungen gibt er mir diese Fehlermeldung aus: The method enqueue(Integer) is undefined for the type Object. Kann mir jemand sagen, was ich da falsch mache?
Dazu auch noch die Stack- und Warteschlangenmethoden.
ich habe als Aufgabe eine Tiefen- und eine Breitensuche mit Hilfe der Datenstruckturen Stack und Warteschlange zu realisieren. Doch habe ich damit größere Probleme. Soweit bin ich bis jetzt.
Java:
public void depthFirst(){
Stapel<D> stapel = new Stapel<D>(null);
if(root != null){
while(root != null){
Integer i = new Integer(root.data);
super.push(i);
if(root.left == null && root.right == null){
Integer y = new Integer(root.data);
System.out.println(super.pop());
root = super.pop();
}
if(root.left != null){
root = root.left;
Integer y = new Integer(root.data);
super.push(y);
root = root.left;
}else if (root.right != null){
root = root.right;
Integer y = new Integer(root.data);
super.push(y);
}
}
}
super.toString();
}
public int breadthFirst() {
Warteschlange<D> schlange = new Warteschlange<D>(null);
if(root != null){
while(root != null){
Integer i = new Integer(root.data);
super.enqueue(i);
if(root.left != null){
root = root.left;
Integer y = new Integer(root.data);
super.enqueue(y);
System.out.println(super.dequeue());
root = super.dequeue();
if(root.right != null){
root = root.right;
Integer x = new Integer(root.data);
super.enqueue(x);
System.out.println(super.dequeue());
root = super.dequeue();
}else if (root.right != null){
Integer x = new Integer(root.data);
root = root.right;
super.enqueue(y);
}else{
System.out.println(super.dequeue());
root = super.dequeue;
}
}
}
}else
System.out.println("Baum ist leer.");
}
Das diese Algorithemen höchstwahrscheinlich nicht ganz klappen werden, bin ich mir bewusst. Mein Frage bezieht sich auf die Anweisung super.push, super.pop. super.enqueue und super dequeue. Denn bei diesen 4 Anweisungen gibt er mir diese Fehlermeldung aus: The method enqueue(Integer) is undefined for the type Object. Kann mir jemand sagen, was ich da falsch mache?
Dazu auch noch die Stack- und Warteschlangenmethoden.
Java:
//Stack
public void push(D wert){
Node<D> p = top;
if (isEmpty() == true) {
p = new Node<D>(wert);
p.next = top;
top = p;
System.out.println("Wert wurde am Anfang der Liste hinzugefügt.");
}else {
while (p != null) {
if (p.next == null) {
p.next = new Node<D>(wert);
System.out.println("Wert wurde zur Liste hinzugefügt.");
break;
} else
p = p.next;
}
}
}
public D pop(){
Node<D> p = top;
if (isEmpty() == true) {
System.out.println("Liste ist bereits leer.");
return null;
} else if (size() == 1) {
p = top;
return null;
} else {
while (p != null) {
if (p.next.next == null) {
p.next = null;
System.out.println("Letzter Wert der Liste wurde gelöscht.");
return p.data;
}
p = p.next;
}
return null;
}
}
//Warteschlange
public void enqueue(D wert){
Node<D> p = top;
if (isEmpty() == true) {
Node<D> p1 = new Node<D>(wert);
p1.next = top;
top = p1;
System.out.println("Wert wurde am Anfang der Liste hinzugefügt.");
}else {
while (p != null) {
if (p.next == null) {
p.next = new Node<D>(wert);
System.out.println("Wert wurde zur Liste hinzugefügt.");
break;
} else
p = p.next;
}
}
}
public D dequeue(){
Node<D> p = top;
if (isEmpty() == true) {
System.out.println("Liste ist bereits leer.");
return null;
} else {
p = p.next;
top = p;
System.out.println("Erstes Element wurde aus der Liste gelöscht.");
return p.data;
}
}
Zuletzt bearbeitet von einem Moderator: