Hallo, ich muss Ergänzungen im Konstruktor sowie in den Methoden peek, pop, push und empty vornehmen.Aber ich bekomme einen Laufzeitfehler! Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10! Kann bitte jemand mir helfen ! Ich weiß nicht was ich hier falsch mache ?
⚠️ Achtung: wie in den Schnittstellenkommentaren angedeutet ist es nicht nötig, den Stack zu vergrößern!
⚠️ Achtung: wie in den Schnittstellenkommentaren angedeutet ist es nicht nötig, den Stack zu vergrößern!
Java:
class IntArrayStack
{
private final int[] _stack;
private int _anzElemente;
/**
* Erzeugt einen Stack mit einer Maximalgroesse.
*
* @param size Maximalgröße des Stacks. Muss größer als 0 sein.
*/
public IntArrayStack(int size)
{
_anzElemente=0;
if (size <= 0)
{
throw new IllegalArgumentException();
}
// Hier Code einfuegen
_stack=new int[size];
}
/**
* Gibt an, ob der Stack Elemente enthält.
*
* @return true, wenn der Stack leer ist
*/
public boolean empty()
{
// Hier Code einfuegen
if(_anzElemente==0) {
return true;
}
return false;
}
/**
* Gibt das zuletzt hinzugefügte Element zurück, ohne den Zustand des
* Stacks zu verändern.
*
* @return zuletzt hinzugefügtes Element oder 0, wenn der Stack leer ist
*/
public int peek()
{
// Hier Code einfuegen
if(_anzElemente==0){
return 0;
}
return _stack[_anzElemente];
}
/**
* Gibt das zuletzt hinzugefügte Element zurück und entfernt es
* vom Stack. Gibt 0 zurück, wenn der Stack leer ist.
*
* @return zuletzt hinzugefügtes Element
*/
public int pop()
{
//int v=_stack.length;
if(_anzElemente==0)
{
return 0;
}
// Hier Code einfuegen
_anzElemente --;
return _stack[_anzElemente+1];
}
/**
* Fuegt dem Stack ein neues Element hinzu. Lässt den Stack
* unverändert, wenn die maximale Anzahl an Elementen erreicht ist.
*
* @param x Element, das hinzugefuegt werden soll.
*/
public void push(int x)
{
// Hier Code einfuegen
// Fuegt dem Stack ein neues Element hinzu.
if(_anzElemente<_stack.length){
for ( int i = 0; i < _stack.length; i++)
{
_stack[i]=x;
_anzElemente ++ ;
}
}
}
}