[PHP] Einfacher Stack

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 :)

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:
cool, hast du auch domparser, der mit php 4.3 kompatibel ist? wenn ja, brauch ich ja nicht selber machen ^^

danke im vorraus ^^
 
XML -> DOM,

Document Object Model, halt in php, bin grad eigentlich dabei das zu entwickeln, aber wegen RealAbschluss grad kein bock ^^
 
Rechtschreibung ist mir kein Problem, aber Artikel und gr ist ein bisschen problematisch ^^. Bin ja noch nicht mal drei Jahre hier ^^.
 
Mhm, Ideen hätt. Halbes Konzept schon halb durchgedacht (macht zwar nur 1/4-Konzept aber egal). Wär möglich, brauche etwas Zeit (d.h. morgen Bio-Ex, Freitag Referat über "Niccolo Macchiavelli"). Vielleicht am Wochenende?

Also erstmal... Gehe ich richtig der Annahme, dass du gerne ein XML-Dokument parsen lassen würdest, so dass du über die Klasse auf alle Elemente mitsamt Subelementen (Knoten, Attribute, Kinder) zugreifen kannst? Also über Funktionen wie getElementById etc.? Und natürlich auch neue Knoten einhängen, etc.? Dann wären wir uns nämlich einig :)
 
ja, das mein ich, wie bei php 5

was ist mit zusammen arbeit, ich hab nämlich schon etwas geschrieben ?? ^^

ich hab auch xslt parser geschrieben, der mit php4, php5 und domxml funktioniert, wenn du mal interessiert
 
Zuletzt bearbeitet:
info: Wer selber an seinem Server rumbasteln darf, sollte sich mal die Erweiterung SPL_Types (erhältlich über PECL) anschauen, da gibt es neben Stack auch Queue, DLL & Enum.
 
Zurück
Oben