Stacks und Queues Implementieren

Ninjafighter

Mitglied
Sehr geehrte Community,

ich muss einen vorgegeben Stack und Queue implementieren.

Java:
public interface IStack<T> {
   
    /** Adds new element to the top */
    public void push(T t);
    /** Removes and returns the top element */
    public T pop();
    /** Returns the top element without removing */
    public T top();
    /** Checks if the stack is empty */
    public boolean isEmpty();
   
}


Java:
public interface IQueue<T> {
   
    /** Enqueues an element */
    public void enqueue(T t);
    /** Dequeues the first element */
    public T dequeue();
    /** Returns the first element */
    public T front();
    /** Checks if the queue is empty */
    public boolean isEmpty();
   
}

Was ich bis jetzt gemacht habe ist aus einem Standartbeispiel, ich versuchte irgendwie es an die Aufgabe anzupassen.

Für Stack

Java:
public class Stack<T> implements IStack<T> {

    // Attributes
    private Object[] elements = null;
    private int num = 0;

    // Constructors
    public Stack (int size) {
        elements = new Object [size];
    }

    public Stack() {
        elements = new Object[100];
    }

    @Override
    public void push(T t) {

        // If Stack is full, throw exception
        if (num == elements.length)
            throw StackException();

        // Put the element on the top of the stack
        elements[num] = obj;

        // Increase counter by one
        num++;
    }

    @Override
    public T pop() {
       
        // If Stack is empty, throw exception
        if ( isEmpty()) throw StackException {
           
            // Decrease counter by one
            num--;
           
            // Store element
            Object o = elements[num];
           
            // Delete element
            elements[num] = null;
           
            // Return element
            return o;
        }
    }

    @Override
    public T top() {

        // If Stack empty, throw exception
        if (isEmpty())
            throw new StackException();

        // Go back to the first element
        return elements[num - 1];
    }

    @Override
    public boolean isEmpty() {
        return num == 0;
    }

}

Für Queue


Java:
public class Queue<T> implements IQueue<T> {

    Element first = null, last = null;

    private class Element {
        Object obj;
        Element next = null;

        Element(Object o) {
            obj = o;
        }
    }

    @Override
    public void enqueue(T t) {

        if (isEmpty()) {
            first = last = new Element(t);
        } else {
            last.next = new Element(t);
            last = last.next;

        }

    }

    @Override
    public T dequeue() {
        if ( first != null) first = first.next;
        return null;
    }

    @Override
    public T front() {
            if (first != null) first = first.next;
            return null;
    }

    @Override
    public boolean isEmpty() {

        return first == null;
    }

}


Nun, meine Frage ist, was muss ich verbessern, damit Stack und Queue funktionstüchtig sind oder ist das Obere, was ich gemacht habe, komplett falsch, dementsprechend komplett neu machen?

Ich zähle mich noch als Anfänger, Listen usw. sind auch neu für mich daher verzeihung, wenn es im falschen Thread ist. Bitte entschuldigt auch, wenn ich es wirklich komplett falsch gemacht habe. Ich versuches es wirklich zu lernen.
 

Blender3D

Top Contributor
Ich gebe Dir den Stack als Beispiel da Du Ausnahmen wirfst habe ich die zum Interface hinzugefügt.
Code:
public interface IStack<T> {
    /** Adds new element to the top */
    public void push(T t) throws StackException;
    /**
     * Removes and returns the top element
     *
     * @throws StackException
     */
    public T pop() throws StackException;
    /**
     * Returns the top element without removing
     *
     * @throws StackException
     */
    public T top() throws StackException;
    /** Checks if the stack is empty */
    public boolean isEmpty();
}
Code:
@SuppressWarnings("serial")
public class StackException extends Exception {
    public StackException(String msg) {
        System.err.println("Stack " + msg);
    }
}
Code:
public class Stack<T> implements IStack<T> {
    // Attributes
    private T[] elements = null;// elements on the stack
    private int top = -1; // points to element on top

    // Constructors
    @SuppressWarnings("unchecked")
    public Stack(int size) {
        elements = ((T[]) new Object[size]);
    }
    public Stack() {
        this(100);
    }
    @Override
    public void push(T t) throws StackException {
        if (top == elements.length - 1) // full
            throw new StackException("overflow");
        elements[++top] = t;
    }
    @Override
    public T pop() throws StackException {
        if (isEmpty()) // empty stack
            throw new StackException("underfow");
        return elements[top--];
    }
    @Override
    public T top() throws StackException {
        if (isEmpty()) // empty stack
            throw new StackException("underfow");
        return elements[top];
    }
    @Override
    public boolean isEmpty() {
        return top == -1;
    }
}
:rolleyes:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
L Queue mithilfe von 2 Stacks erstellen Java Basics - Anfänger-Themen 1
M Erstellen eines Stacks Java Basics - Anfänger-Themen 14
D Stacks wohlgeformte Klammerausdrücke Java Basics - Anfänger-Themen 14
I MergeSort iterativ mit Stacks Java Basics - Anfänger-Themen 13
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
S Funktion eines Stacks Java Basics - Anfänger-Themen 4
G BlueJ Stacks Bahnhof Java Basics - Anfänger-Themen 2
G Werte in Stacks zusammenrechnen Java Basics - Anfänger-Themen 23
M Auf vorletztes Element des Stacks zugreifen? Java Basics - Anfänger-Themen 2
D Inhalte von Stacks miteinander multiplizieren Java Basics - Anfänger-Themen 4
G Stacks Java Basics - Anfänger-Themen 8
P Queue, Stacks, Listen Java Basics - Anfänger-Themen 7
A top referenz bei queues Java Basics - Anfänger-Themen 1
Maxq Klassen Actionen in Button implementieren Java Basics - Anfänger-Themen 6
A LinkedList implementieren Java Basics - Anfänger-Themen 32
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
new_to_coding Rekursive Reihe implementieren Java Basics - Anfänger-Themen 1
HolyFUT Javax Websocket API implementieren Java Basics - Anfänger-Themen 14
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
P9cman Ampel in Java implementieren Java Basics - Anfänger-Themen 3
districon Generics implementieren Java Basics - Anfänger-Themen 2
W UML Diagramm implementieren Java Basics - Anfänger-Themen 2
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
R Taxistand Implementieren Java Basics - Anfänger-Themen 1
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Gaudimagspam BMI in Java implementieren Java Basics - Anfänger-Themen 38
T Methode implementieren Java Basics - Anfänger-Themen 21
R Implementieren einer iterativen und rekursiven Klassenmethode. Java Basics - Anfänger-Themen 1
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
J alternierendes Probing-Verfahren für Hash-Tabellen implementieren Java Basics - Anfänger-Themen 0
B UML-Klassendiagram get und set implementieren Java Basics - Anfänger-Themen 2
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
U Hashmap Iterator selbst implementieren Java Basics - Anfänger-Themen 10
E Klassen implementieren Java Basics - Anfänger-Themen 94
S Tokenizer selbst implementieren Java Basics - Anfänger-Themen 1
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
M WindowStateListener selbst implementieren Java Basics - Anfänger-Themen 8
J Algorithmus für eine Reihe implementieren Java Basics - Anfänger-Themen 2
F Kindklassen sollen Ihre Methoden selbst implementieren Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
N Verkettete Liste implementieren Java Basics - Anfänger-Themen 5
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
Shizmo Methoden Formel besser implementieren Java Basics - Anfänger-Themen 8
X Polynome implementieren Java Basics - Anfänger-Themen 3
O Methoden implementieren, Sichtbarkeiten, Brüche Java Basics - Anfänger-Themen 104
D Erste Schritte Weitere Befehle implementieren Java Basics - Anfänger-Themen 27
D Erste Schritte Befehl back implementieren Java Basics - Anfänger-Themen 18
B Formel in Java implementieren Java Basics - Anfänger-Themen 4
M Suchbaum implementieren Java Basics - Anfänger-Themen 8
S Implementieren zweier Klassen Java Basics - Anfänger-Themen 5
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
K Klassen implementieren Java Basics - Anfänger-Themen 7
W Neue Klassenmethode implementieren.. Java Basics - Anfänger-Themen 6
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
C UML Diagramm in Java implementieren-Korrektur Java Basics - Anfänger-Themen 8
T Equal Methode implementieren Java Basics - Anfänger-Themen 22
C ZahlenMuster implementieren Java Basics - Anfänger-Themen 1
C Alte Klausuraufgabe - UML in Java implementieren Java Basics - Anfänger-Themen 1
D Erste Schritte spielfeld als Datenspeicher implementieren Java Basics - Anfänger-Themen 1
D spielfeld als Datenspeicher implementieren Java Basics - Anfänger-Themen 5
J Builder Pattern implementieren Java Basics - Anfänger-Themen 3
B Sortierte Liste implementieren Java Basics - Anfänger-Themen 3
L Liste mittels Stack implementieren Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
D Weihnachtsbaum implementieren gescheitert. Java Basics - Anfänger-Themen 2
D Tannenbaum implementieren gescheitert Java Basics - Anfänger-Themen 1
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
G Erbklasse verpflichten Methode zu implementieren Java Basics - Anfänger-Themen 3
D Algorithmus zu gegebener Laufzeit implementieren Java Basics - Anfänger-Themen 1
G einfache Leet-Übersetzung implementieren und benutzen Java Basics - Anfänger-Themen 14
B Binärbaum mit java implementieren! Java Basics - Anfänger-Themen 5
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
D Exception selbst Implementieren Java Basics - Anfänger-Themen 1
T QuickSort implementieren Java Basics - Anfänger-Themen 5
J Konstruktor implementieren, zahl 0 repräsentieren Java Basics - Anfänger-Themen 4
C Frage zum Kartenspiel implementieren Java Basics - Anfänger-Themen 9
shiroX OOP Java Funktion implementieren Java Basics - Anfänger-Themen 3
T Ampel implementieren Java Basics - Anfänger-Themen 12
S Interface Implementieren von Methoden aus einer Klasse in eine GUI Java Basics - Anfänger-Themen 6
H Methoden Implementieren "Drücken Sie eine beliebige Taste" Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
G Szenario implementieren Java Basics - Anfänger-Themen 7
T Methode Implementieren Java Basics - Anfänger-Themen 15
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
T Interface implementieren mit Abstrakten Typen? Java Basics - Anfänger-Themen 4
T Interface Implementieren Java Basics - Anfänger-Themen 5
T Methoden Wie compareTo() Methode implementieren? Java Basics - Anfänger-Themen 9
D Artikel-Suche implementieren Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben