Stack - listenbasierte Implementierung

cartier

Neues Mitglied
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:
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;
   }
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):

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
 

Flown

Administrator
Mitarbeiter
Musst du jetzt das Grundgerüst das du als erstes gepostet hast verwenden oder mit Arrays arbeiten?
Stell doch den ganzen Übungszettel online!
 

cartier

Neues Mitglied
Ich muss das Grundgerüst weiter ausbauen, das ich am Anfang gepostet habe. Die Aufgabenstellung wie mein Dozent sie gestellt hat, ist oben genau so hingeschrieben. Der untere Code ist von mir irgendwie zusammengebaut worden.

LG
 

Flown

Administrator
Mitarbeiter
Egal ich zeig dir jetzt mal den Ansatz (mit Generics erweitert):

Falls dein Interface so aussieht:
Java:
public interface MyStack<T> {

  void push(T o);
  T peek();
  T pop();
  boolean isEmpty();
}

Dann muss deine Implementierung dementsprechend so aussehen:
Java:
class SimpleStack<T> implements MyStack<T> {

  private SimpleStack<T> rest = null;
  private T data;

  public SimpleStack() {
  }

  private SimpleStack(T data, SimpleStack rest) {
    this.rest = rest;
    this.data = data;
  }

  @Override
  public void push(T data) {
    rest = new SimpleStack(data, rest);
  }

  @Override
  public T pop() {
    if (rest == null) {
      throw new NoSuchElementException();
    }
    T rc = rest.data;
    rest = rest.rest;
    return rc;
  }

  @Override
  public T peek() {
    // Gib das oberste Element zurück -> siehe wie das bei pop funktioniert mit rc ... da muss nichts am rest geändert werden
  }

  @Override
  public boolean isEmpty() {
    // Ist wahr wenn rest was ist?
  }

  @Override
  public String toString() {
    // Kann man auf mehrere Arten implementieren: Bei Rekursion -> Wenn isEmpty() gib "()" zurück sonst Klammer auf data und dann rest.toString und Klammer zu
    // Mit Schleife ist das noch einfacher for(SimpleStack<T> s = rest; !s.isEmpty(); s = s.rest) { // String zusammensetzen }
  }
}

Bei weiteren Fragen her damit... Musst aber bis morgen warten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A stack Java Basics - Anfänger-Themen 14
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
V Ist Off-Heap-Speicher dasselbe wie Stack-Speicher? Java Basics - Anfänger-Themen 2
izoards Stack... Java Basics - Anfänger-Themen 17
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
B Zahlenfolge von Queue in Stack Java Basics - Anfänger-Themen 29
L Stack bilden, push und pop Java Basics - Anfänger-Themen 16
KogoroMori21 Stack und Heap Speicher Java Basics - Anfänger-Themen 1
G Stack und Queue Arbeitsblatt Java Basics - Anfänger-Themen 3
G Stack programmieren Java Basics - Anfänger-Themen 6
Z Datentypen Stack based calculator Java Basics - Anfänger-Themen 8
F speicherort stack oder heap Java Basics - Anfänger-Themen 1
S Rekursiven Stack Java Basics - Anfänger-Themen 6
Curtis_MC Collections Zufälliges Element aus Stack Java Basics - Anfänger-Themen 2
D Queue vs. Stack Java Basics - Anfänger-Themen 6
P Stack, Heap Java Basics - Anfänger-Themen 13
D Erste Schritte Stack im Rollenspiel Java Basics - Anfänger-Themen 76
J Stack mit Benutzereingabe Java Basics - Anfänger-Themen 17
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
S Sequenz von Zahlen bei einem Stack möglich oder nicht möglich? Java Basics - Anfänger-Themen 5
E Stack vs Queue - Gemeinsamkeiten / Unterschiede Java Basics - Anfänger-Themen 7
C Laufzeit von Stack Operation Java Basics - Anfänger-Themen 5
4 Stack over flow bei rekursiver Tiefensuche Java Basics - Anfänger-Themen 5
J Quicksort mit Stack Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
L Liste mittels Stack implementieren Java Basics - Anfänger-Themen 0
A Stack programmieren -> Unklarheiten Java Basics - Anfänger-Themen 1
L Mit rekursiven Aufrufen einen Stack emulieren Java Basics - Anfänger-Themen 1
T Frage zu Java Stack Java Basics - Anfänger-Themen 5
D Stack-Objekt - LIFO - wait(); notify(); Java Basics - Anfänger-Themen 0
J Array von Objekten, wie schauts im Heap / Stack aus ? Java Basics - Anfänger-Themen 7
M Frage zu Stack und Heap Java Basics - Anfänger-Themen 1
Farbenfroh Suche Übungsaufgaben: BinaryTree, Stack Java Basics - Anfänger-Themen 0
D Aufgabe: Stack mit Iterator Java Basics - Anfänger-Themen 8
X Stack mit Oberklasse, wieso funktioniert es nicht? Java Basics - Anfänger-Themen 8
B Stack/Heap Frage Java Basics - Anfänger-Themen 36
K Probleme mit stack Java Basics - Anfänger-Themen 7
K Wofür wird heute noch die Stack Klasse in Java genutzt Java Basics - Anfänger-Themen 4
F Rekursion Tiefensuch-Problem - Stack Overflow Java Basics - Anfänger-Themen 9
P LinkedList - Stack ... grundlegende Frage Java Basics - Anfänger-Themen 5
B Stack in eine verkettete Liste pushen Java Basics - Anfänger-Themen 4
J OOP Warum braucht man den Stack Java Basics - Anfänger-Themen 3
B Queue mit Daten aus einem Stack füllen Java Basics - Anfänger-Themen 21
G Stack invertieren Java Basics - Anfänger-Themen 3
H Pseudo-Stack (char[] stackArray) mit Zeichen aus einer .txt-Datei befüllen Java Basics - Anfänger-Themen 5
S Stack Problem mit Objekt Java Basics - Anfänger-Themen 2
X String mit String von Objekt im Stack vergleichen? Java Basics - Anfänger-Themen 14
D Stack auslesen mit pop Java Basics - Anfänger-Themen 2
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
S Eigene Stack Klasse Java Basics - Anfänger-Themen 26
S Stack: Klasseninvariante Java Basics - Anfänger-Themen 4
L OOP Wrapper Klassen - Stack-Aufgabe Java Basics - Anfänger-Themen 2
M Frage zu Stack Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
T Probleme bei einen Stack der über drei Dateien funktionieren soll Java Basics - Anfänger-Themen 5
V java.util.Stack Java Basics - Anfänger-Themen 9
K Stack und immer gleiches Objekt Java Basics - Anfänger-Themen 11
kulturfenster Stack / Queue Implementationen Java Basics - Anfänger-Themen 11
S Stack einlesen. Java Basics - Anfänger-Themen 2
E Stack kann nicht implimentiert werden Java Basics - Anfänger-Themen 11
E Eigene Stack Klasse schreiben Java Basics - Anfänger-Themen 12
J Stack Java Basics - Anfänger-Themen 3
K min-int-Wert in'nem Stack Java Basics - Anfänger-Themen 8
L Stack UpnRechner Java Basics - Anfänger-Themen 4
B Stack mit Bildern füllen Java Basics - Anfänger-Themen 2
B Stack mit Strings in zufälliger Reihenfolge füllen Java Basics - Anfänger-Themen 4
J Stack, der Integer-Zahlen enthält Java Basics - Anfänger-Themen 3
K Array Stack Java Basics - Anfänger-Themen 6
O Stack-Klasse Java Basics - Anfänger-Themen 7
S Stack mit Arrays Java Basics - Anfänger-Themen 3
T generischer stack Java Basics - Anfänger-Themen 3
Z Keller/Stack Problem Java Basics - Anfänger-Themen 11
H Stack und Queue Java Basics - Anfänger-Themen 6
M Stack SetValTop Java Basics - Anfänger-Themen 6
G Die Klasse Stack selber schreiben. Java Basics - Anfänger-Themen 2
F Klammertest mit Stack implementieren Java Basics - Anfänger-Themen 5
X Stack Java Basics - Anfänger-Themen 14
J Morgen Java-Klausur. Stack, Heap, Method-Area Java Basics - Anfänger-Themen 2
H Unterschied zwischen Stack und Array Java Basics - Anfänger-Themen 3
F MergeSort iterativ mit Hilfe von Stack Java Basics - Anfänger-Themen 5
S stack Java Basics - Anfänger-Themen 3
S Stack invertieren Java Basics - Anfänger-Themen 14
S Stack-Operationen Java Basics - Anfänger-Themen 59
S Stack.pop() wie genau funktioniert das? Java Basics - Anfänger-Themen 3
A Stack, Frage zur Methode push Java Basics - Anfänger-Themen 4
C Anzahl der Elemente auf einem Stack Java Basics - Anfänger-Themen 4
D Stack chaos Java Basics - Anfänger-Themen 2
megachucky kleines problem mit nem STACK Java Basics - Anfänger-Themen 8
I Stack ist auf einmal empty Java Basics - Anfänger-Themen 3
R Beispiele für Stack & Visualisierung Java Basics - Anfänger-Themen 2
R Stack: Wieso funktioiert das? Java Basics - Anfänger-Themen 2
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
N Stack-Probleme Java Basics - Anfänger-Themen 2
K Stack Overflow Java Basics - Anfänger-Themen 2
ruutaiokwu JRE-/JDK-unabhängige PBKDF2WithHmacSHA512-Implementierung Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben