2012-04-01 12 views
1

Ich praktiziere mein Wissen über ADTs, indem ich einige Datenstrukturen implementiere, selbst wenn die meisten bereits existieren. Bei Stacks sprechen viele Bücher und andere Dokumente, die ich gelesen habe, dass der Stack einen Fehler ausgibt, wenn Sie versuchen, ein Element hinzuzufügen, aber der Stack ist voll. In einer Java-Implementierung (oder einer anderen), sollte ich speziell eine maximale Stackgröße verfolgen (vom Konstruktor), überprüfen, ob diese Größe erreicht ist, und eine Überlauf-Ausnahme auslösen, wenn dies der Fall ist? Oder ist das nicht so eine große Sache?Sollte ein Stack eine maximale Größe haben?

+0

Sollte eine Warteschlange oder Liste eine maximale Größe haben? Wie/warum kann sich ein Stack * ADT * unterscheiden? –

Antwort

5

Hängt von der Art des Stacks ab, aber normalerweise spielt es keine Rolle, ob der Stack Heap zugewiesen ist.

Wenn Ihr Stapel wirklich auf dem Stapel zugeordnet ist, sollten Sie ihn klein halten.

+0

Was, wenn der Stapel leer ist und Sie einen peek() oder pop(), sollte ich eine EmptyStackException werfen oder Null zurückgeben? –

+3

Es kommt wieder auf den Zweck an. Für akademische Übungen würde ich sagen, eine Ausnahme wäre vorzuziehen, solange Sie auch leer() implementieren. –

Verwandte Themen