diff --git a/src/ChainQueue.java b/src/ChainQueue.java index f6b31e9..954c757 100644 --- a/src/ChainQueue.java +++ b/src/ChainQueue.java @@ -7,49 +7,83 @@ public class ChainQueue implements Queue { private class Node { - E data; - Node next; + private E data; + private Node next; + + public Node getNext() { + return next; + } + + public E getData() { + return data; + } + + public void setData(E data) { + this.data = data; + } + + public void setNext(Node next) { + this.next = next; + } public Node(E data) { this.data = data; + } } - Node first; + Node node; @Override - public boolean add(E arg0) { - if (first == null) { - first = new Node(arg0); + public boolean add(E input) { // Übergeben der "Data" + if (node == null) { // Ist das Erste der Schlange leer? + node = new Node(input); // Ja? Direkt einfügen + return true; } - return addNode(arg0, first); + return addNode(input, node); // Andernfalls die Schlage durchlaufen und dort einfügen } - private boolean addNode(E arg, Node n) { - if (n == null) { - n = new Node(arg); + private boolean addNode(E input, Node n) { + if (n.getNext() == null) { + n.setNext(new Node(input)); + return true; } - if (n.next == null) { - n.next = new Node(arg); - } - return true; + return addNode(input, n.getNext()); } @Override public int size() { - return 0; + Node temp = node; + int size = 0; + while (temp != null) { + size++; + temp = temp.getNext(); + } + return size; } + @Override public boolean isEmpty() { + if (this.size() == 0) { + return true; + } return false; } @Override public boolean contains(Object o) { + Node temp = node; + + for (int i = 0; i < this.size(); i++) { + if (node.getData().equals(o)) { + return true; + } + temp = temp.getNext(); + } return false; }