homeduke Prof. Dr. Uwe Schmidt FH Wedel

Die Datei: SimpleStack.java


weiter
   1/** $Id: SimpleStack.java,v 1.3 2007-01-02 17:49:59 uwe Exp $
   2 *
   3 * @author Uwe Schmidt
   4 *
   5 * ein einfacher stack
   6 * implementiert mit einem array fester Laenge
   7 *
   8 * die Laenge wird beim Erzeugen des stacks festgelegt
   9 * diese Version behandelt keinen stack-Ueberlauf
  10 * ist also nur beschraenkt praktisch einsetzbar
  11 */
  12
  13//--------------------
  14
  15public
  16class SimpleStack {
  17
  18
  19  /*
  20   * das Feld fuer die Elemente
  21   * es koennen beliebige Elemente gespeichert werden
  22   */
  23
  24  private
  25  Object[] elems;
  26
  27  /*
  28   * der Fuellstand des Stacks
  29   * top zeigt auf den 1. freien Eintrag
  30   */
  31
  32  private
  33  int top;
  34
  35  //--------------------
  36
  37
  38  /**
  39   * die Konstruktoren
  40   * zum Erzeugen des Feldes elems
  41   * und zum Initialisieren von elems und top
  42   */
  43
  44  public
  45  SimpleStack(int max) {
  46                             // alle Referenzen werden mit null initialisiert
  47    elems = new Object[max];
  48    top = 0;
  49  }
  50
  51  //--------------------
  52
  53  public
  54  SimpleStack() {
  55               // default Laenge des Stacks ist 20
  56    this(20);
  57  }
  58
  59  //--------------------
  60
  61  /**
  62   * stack leer ?
  63   */
  64
  65  public
  66  boolean isEmpty() {
  67    return
  68      top == 0;
  69  }
  70
  71  //--------------------
  72
  73  /**
  74   * Lesen des obersten Elements
  75   */
  76
  77  public
  78  Object top()
  79  {
  80    return
  81      elems[top - 1];
  82  }
  83
  84  //--------------------
  85
  86  /**
  87   * neues Element speichern
  88   */
  89
  90  public
  91  void push(Object o) {
  92    elems[top++] = o;
  93  }
  94
  95  //--------------------
  96
  97  /**
  98   * oberstes Element loeschen
  99   * Die Zuweisung mit der ungueltigen Referenz
 100   * ermoeglicht Speicherplatz-Wiederverwendung
 101   */
 102
 103  public
 104  void pop()
 105  {
 106    elems[--top] = null;
 107  }
 108
 109  //--------------------
 110  
 111  /**
 112   * die Vorbedingungen fuer
 113   * pop und top
 114   *
 115   * es wird hier angenommen, dass
 116   * der Kunde dieser Klasse diese
 117   * Bedingungen in seiner Anwendung
 118   * einhaelt oder ueberprueft
 119   */
 120
 121  public
 122  boolean prePop() {
 123    return
 124      ! isEmpty();
 125  }
 126
 127  public
 128  boolean preTop() {
 129    return
 130      ! isEmpty();
 131  }
 132}
 133
 134  //--------------------

Die Quelle: SimpleStack.java


Letzte Änderung: 02.01.2007
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel