Laboration 1: enkel stack (enkellänkad lista)
- Kod att börja med. Paketet stack i mappen stack. Testa (lokalt med egna filer) med javac stack/*.java och sedan java stack.UseSimpleStack.
- Relevanta overheadbilder
Dessa övningar gäller en enkel generisk klass för stackar implementerade som enkellänkade listor. SimpleStack<E> Denna klass arbetar vi bara med som övning. I ett verkligt program skulle vi t.ex. kunna använda LinkedList<E> för våra stackar.
(a) Lägg till metoder i SimpleStack<E> motsvarande och med samma namn som dessa i LinkedList<E> (se dess dokumentation)
Relativt lätta uppgifter.
- public E get(int index)
- public E remove(int index)
- int size()
VG-uppgift
Gör om SimpleStack<E> med precis samma beteende hos metoderna, fast med en implementation som bygger på fält istället. När stacken blir större än att den ryms i befintligt fält (theArray), låt oss bestämma oss för att nyallokerat fält skall vara dubbelt så stort som det befintliga. Lite material att utgå ifrån:
import java.lang.reflect.Array; public class SimpleStack{ /* INSTANSVARIABLER */ private int arraySize; private int currentSize; private T[] theArray; /* KONSTRUKTOR */ public SimpleStack() { theArray= (T[]) new Object[20]; // detta ger en varning "unchecked cast" arraySize=20; currentSize=0; } /* EN ANTAL METODER SAKNAS! */ }
