Hallo,
habe hier eine Queue Implementierung. Nur das enqueuen funktioniert leider nicht wie es soll.
Code ist unten angehangen. Von meiner Logik müsste doch in der enq Methode eigentlich
statt folgendem stehen.
Denn man muss doch das bisherige back element als vorgänger vom neu hinzugefügten le setzen und dann setzt man noch back auf das neu hinzugefügte le.
Diese Idee löst das Problem leider nicht, daher habe ich unten den kompletten Code mal rangehangen.
Danke für Denkanstöße
habe hier eine Queue Implementierung. Nur das enqueuen funktioniert leider nicht wie es soll.
Code ist unten angehangen. Von meiner Logik müsste doch in der enq Methode eigentlich
Java:
public void enq(final T element) {
else {
le.setPreviousListElement(back);
back = le;
}
Java:
public void enq(final T element) {
else {
back.setPreviousListElement(le);
back = le;
}
Denn man muss doch das bisherige back element als vorgänger vom neu hinzugefügten le setzen und dann setzt man noch back auf das neu hinzugefügte le.
Diese Idee löst das Problem leider nicht, daher habe ich unten den kompletten Code mal rangehangen.
Danke für Denkanstöße
Java:
package a;
public class Queue<T> implements ADT_Queue<T> {
private class ListElement {
private final T element;
private ListElement previousElement;
public ListElement(final T element) {
this.element = element;
}
public T getElement () {
return element;
}
public ListElement getPreviousElement() {
return previousElement;
}
public void setPreviousListElement(final ListElement previousElement) {
this.previousElement = previousElement;
}
}
private ListElement front;
private ListElement back;
private int size;
public Queue() {
front = back = null;
size = 0;
}
public void enq(final T element) {
final ListElement le = new ListElement(element);
if(empty()) {
front = back = le ;
}
else {
back.setPreviousListElement(le);
back = le;
size++;
}
}
public void deq() {
if(!empty()) {
front = front.getPreviousElement();
size--;
}
if (front == null) {
back = null;
}
}
public T front() {
if(empty()) {
return null;
}
else {
return front.getElement();
}
}
public boolean empty() {
if(size == 0) {
return true;
}
else {
return false;
}
}
public static void main(String [] args) {
Queue<Integer> a = new Queue<Integer>();
a.enq(3);
a.deq();
System.out.println(a.front());
}
}