jeko
Lounge-Member
Hallo zusammen,
Ich hab mal im Rahmen eines kleineren privaten Projektes einen Stack gebaut und dachte ich stell den euch zur Verfügung
Wer ne Doku wünscht, muss spätestens bis morgen warten, ich denke aber der Code erklärt sich von selbst.
Viel Spass damit,
Dominique
Ich hab mal im Rahmen eines kleineren privaten Projektes einen Stack gebaut und dachte ich stell den euch zur Verfügung
PHP:
class Stack {
// Ein einfacher Stack
// (c) Dominique Sandoz
var $top;
var $next;
var $elements;
function Stack() {
// übrige Variablen
$this->elements = array();
$this->top = -1;
$this->next = -2;
}
function top() {
return $this->elements[$this->top];
}
function next() {
return $this->elements[$this->next];
}
function push($obj) {
// (bool) Element auf Stapel
$this->elements[$this->countElements()] = $obj;
$this->top++;
$this->next++;
return true;
}
function pop() {
// (bool) Element von Stapel
if (! $this->hasElements()) {
// echo "<strong>Fehler: Stack::pop()</strong> Keine Elemente mehr vorhanden!<br />Zeile: ".__LINE__." in ".__FILE__; // Fehlermeldung ein/aus
return false;
}
unset($this->elements[$this->countElements() -1]);
$this->top--;
$this->next--;
return true;
}
function hasElements() {
// (bool) Überprüft ob Stack gefüllt ist; gefüllt -> true, leer -> false
if ($this->countElements() > 0) return true;
return false;
}
function inStack($obj) {
// (bool) überprüft ob eine bestimmtes Element im Stack ist
return in_array($obj,$this->elements);
}
function peek($obj) {
// Alias für inStack()
return $this->inStack($obj);
}
function countElements() {
// (int) zählt die Elemente im Stack
return count($this->elements);
}
function clean() {
// (void) setzt den Stack zurück
$this->Stack();
}
}
Wer ne Doku wünscht, muss spätestens bis morgen warten, ich denke aber der Code erklärt sich von selbst.
Viel Spass damit,
Dominique
Zuletzt bearbeitet: