Du brauchst als Grundlage eine Listenstruktur, etwa eine ArrayList. Darauf aufbauend programmierst du dann die Funktionen insert und extract, um Datenelemente hinzuzufügen oder wieder zu entnehmen.
Die Funktion insert fügt ein neues Element hinzu. Die Funktion extract entnimmt das erste Element der Queue bzw. das oberste Element des Stacks.
Zusätzlich ist noch eine Funktion isEmpty sinnvoll, um festzustellen, ob die Queue bzw. der Stack leer ist. Diese Funktion ist bereits in der Oberklasse ArrayList vorhanden.
Queue implementieren
Bei der Queue werden neue Elemente am Ende der ArrayList eingefügt und vom Anfang der ArrayList wieder entnommen.
import java.util.ArrayList;
public class Queue<Type> extends ArrayList<Type>
{
public void insert(Type x)
{
add(x);
}
public Type extract()
{
if (isEmpty())
throw new RuntimeException("Queue ist leer");
return remove(0);
}
}
Stack implementieren
Beim Stack werden neue Elemente am Ende der ArrayList eingefügt und am Ende auch wieder entnommen. Traditionell werden die Funktionen insert und extract beim Stack auch mit push und pop bezeichnet.
import java.util.ArrayList;
public class Stack<Type> extends ArrayList<Type>
{
public void insert(Type x)
{
add(x);
}
public Type extract()
{
if (isEmpty())
throw new RuntimeException("Stack ist leer");
return remove(size()-1);
}
// Alias-Name für insert
public void push(Type x)
{
insert(x);
}
// Alias-Name für extract
public Type pop()
{
return extract();
}
}
Probiere einmal aus, ob es funktioniert. Schreibe anschließend noch eine Funktion testStack, um auch den Stack noch zu testen.
public static void main(String[] args)
{
testQueue();
}
Es wird eine Queue erzeugt, die Strings speichert.
public static void testQueue()
{
Queue<String> qu=new Queue<String>();
System.out.println(qu.isEmpty());
qu.insert("ene");
System.out.println(qu.isEmpty());
qu.insert("mene");
System.out.println(qu.extract());
qu.insert("muh");
System.out.println(qu.extract());
System.out.println(qu.extract());
System.out.println(qu.isEmpty());
}
Du hast noch nicht genug vom Thema?
Hier findest du noch weitere passende Inhalte zum Thema: