Hallo zusammen
Ich habe von meinem Dozenten folgende Aufgabe erhalten und komme leider nicht weiter. Ein Teil des Codes habe ich probiert zu programmieren. Aufgabe:
Betrachten Sie das folgende Klassengerüst:
Ergänzen Sie diese Klasse um die fehlenden Stack-Methoden, sowie um eine Methode
public String toString()
so dass ein Stack s nach s.push("Hallo"); s.push("Berlin"); s.push("Salut"); System.out.println( s );
den folgenden Output liefert:
(Salut, Hallo, Berlin) oder alternativ: (Salut (Hallo (Berlin))) oder alternativ : (Salut (Hallo (Berlin())))
Mein Versuch habe ich anhand von einigen Übungsfolien so programmiert (leider bin ich wirklich noch ein grosser Anfänger in Java und weiss überhaupt nicht wie weiter machen):
Kann mir jemand weiterhelfen?
LG
Ich habe von meinem Dozenten folgende Aufgabe erhalten und komme leider nicht weiter. Ein Teil des Codes habe ich probiert zu programmieren. Aufgabe:
Betrachten Sie das folgende Klassengerüst:
Java:
import java.util.NoSuchElementException;
//SimpleStack Datenstruktur besteht aus einem data-Eintrag und einem Verweis auf
// den rest, eine Datenstruktur vom gleichen Typ
public class SimpleStack {
private SimpleStack rest = null;
private Object data;
public SimpleStack(){}
private SimpleStack( Object data, SimpleStack rest ){
this.rest=rest; this.data=data;
}
void push( Object data ){
rest = new SimpleStack( data, rest );
}
Object pop(){
if( rest==null ) throw new NoSuchElementException();
Object rc = rest.data;
rest=rest.rest;
return rc;
}
public String toString()
so dass ein Stack s nach s.push("Hallo"); s.push("Berlin"); s.push("Salut"); System.out.println( s );
den folgenden Output liefert:
(Salut, Hallo, Berlin) oder alternativ: (Salut (Hallo (Berlin))) oder alternativ : (Salut (Hallo (Berlin())))
Mein Versuch habe ich anhand von einigen Übungsfolien so programmiert (leider bin ich wirklich noch ein grosser Anfänger in Java und weiss überhaupt nicht wie weiter machen):
Java:
//Erste klasse:
Java:
publicinterface Stack {
void push(Object o);
Object peek();
Object pop();
boolean isEmpty();
//Zweite Klasse
publicclass MyStack implements Stack {
private Object[] oA = new Object [1];
privateintpos = 0;
public static void main (String[] args){
Stack s = new MyStack();
System.out.println("Stack leer:" + s.isEmpty() );
s.push("Berlin");
System.out.println( s.peek() );
s.push("Hallo");
System.out.println( s.peek() );
s.push( "Salut" );
System.out.println( "Stack schirttweise leeren...");
System.out.println("Stack leer:" + s.isEmpty() );
while( !s.isEmpty())
System.out.println( s.pop());
}
public void push (Object o) {
if ( pos == oA.length){
Object[] oATemp = new Object [2* oA.length ]; //1
for (int i = 0; i < oA.length; i++) { //2
oATemp[i] = oA [i];
oA = oATemp; // 3
}
}
oA[ pos++] = o;
}
public Object peek(){
return oA[pos-1];
}
public Object pop () {
return oA[ --pos ];
}
publicboolean isEmpty(){
return pos == 0;
}
}
//dritte klasse
publicclass YourStack implements Stack {
@Override
public void push(Object o) {
// TODO Auto-generated method stub
}
@Override
public Object peek() {
// TODO Auto-generated method stub
returnnull;
}
@Override
public Object pop() {
if ([U]rest[/U]==null) throw new [U]NoSuchElementException[/U]();
returnnull;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
returnfalse;
}
}
}
Kann mir jemand weiterhelfen?
LG