Guten Tag Community,
ich schreibe momentan einen Stack, dass nach dem Last-In-First-Out Prinzip funktionieren soll. Nun habe ich folgendes Problem und zwar in der Methode push, will Eclipse es nicht kompilieren, weil "audstack.next" folgender Fehler erscheint, den ich in den Titel kopiert habe. Und ich weiß nicht worin der Fehler liegt. Ich habe schon versucht, die Klasse Item public zu machen, was auch keine Veränderungen zeigt. Der Code sieht folgendermaßen aus:
ich schreibe momentan einen Stack, dass nach dem Last-In-First-Out Prinzip funktionieren soll. Nun habe ich folgendes Problem und zwar in der Methode push, will Eclipse es nicht kompilieren, weil "audstack.next" folgender Fehler erscheint, den ich in den Titel kopiert habe. Und ich weiß nicht worin der Fehler liegt. Ich habe schon versucht, die Klasse Item public zu machen, was auch keine Veränderungen zeigt. Der Code sieht folgendermaßen aus:
Java:
public class AuDStack<E> implements AuDStackInterface <E> {
private class Item{
public E value;
public Item next;
public Item(E value){
this.value = value;
next = null;
}
}
private int counter;
private E data;
public Item head;
public AuDStack(){
counter = 0;
head = null;
}
@Override
public boolean empty() {
boolean empty = false;
if(head == null || counter == 0){
empty = true;
}
else{
empty = false;
}
return empty;
}
@Override
public void clear() {
counter = 0;
head = null;
}
@Override
public void push(E value) {
AuDStack audstack = new AuDStack();
audstack.data = value;
audstack.next = head;
counter++;
}
@Override
public E peek()throws NoSuchElementException {
if(head == null || counter == -1){
throw new NoSuchElementException();
}
else{
return data;
}
}
@Override
public E pop() {
E topItem = peek();
counter--;
return topItem;
}
@Override
public int size() {
return counter;
}
// public String toString() {
//
// if(counter == -1){
// empty();
// }
//
// String stackAsString = "";
// for (int i = 0; i <= counter; i++) {
//
// stackAsString += data[i] + "; ";
//
// }
// return stackAsString;
// }
// public String toString() {
// boolean first = true;
//
// Item zaehler = head;
// String output = "[";
// while (zaehler != null) {
// if (first) {
// first = false;
// } else {
// output += ", ";
// }
//
// output += zaehler.value;
// zaehler = zaehler.next;
// }
//
// output += "]";
//
// return output;
// }
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append('[');
for (Item item = head; item != null; item = item.next) {
if (item != head) {
sb.append(',').append(' ');
}
sb.append(item.value);
}
sb.append(']');
return sb.toString();
}
public static void main(String[] args) {
AuDStack<Integer> myStack = new AuDStack<Integer>();
myStack.push(4);
myStack.push(11);
myStack.push(6);
System.out.println(myStack.toString());
System.out.println(myStack.size());
//
// System.out.println(myStack.peek());
//
// System.out.println(myStack.pop());
//
// System.out.println(myStack.toString());
//
//
//
// myStack.push(18);
//
// System.out.println(myStack.toString());
//
// System.out.println(myStack.pop());
//
// System.out.println(myStack.toString());
}
}