スタックは特殊な後入れ先出しの線形テーブルで、一方の端でのみ挿入 (挿入は一般にプッシュ、プッシュ、またはプッシュと呼ばれます) および削除 (削除は一般にポップまたはアンスタックと呼ばれます) またはポップ) 操作が可能です。挿入および削除操作が可能な端はスタックの最上部と呼ばれ、もう一方の端はスタックの最下部と呼ばれます。スタックは、後入れ先出しの原則に従ってデータを格納します。データを読み取る必要がある場合、最初に入力されたデータはスタックの一番下にプッシュされます。 、データはスタックの最上位からポップされます。スタック内に要素が存在しない場合、それは空のスタックと呼ばれます。
データ構造とアルゴリズム (PHP 実装) - スタック 1
/**
* データ構造とアルゴリズム (PHP 実装) - スタック。
*
* @author Chuangxiang Programming (TOPPHP.ORG)
* @copyright Copyright (c) 2013 TOPPHP.ORG All Rights Reserved
* @license http://www.opensource.org/licenses/mit-license.php MIT ライセンス
* @バージョン 1.0.0 - Build20130607
*/
クラススタック{
/**
* 積み重ねます。
*
* @var 配列
*/
プライベート $スタック;
/**
※スタックの長さです。
*
* @var 整数
*/
プライベート $size;
/**
※構築方法 - データを初期化します。
*/
パブリック関数 __construct() {
$this->stack = array();
$this->サイズ = 0;
}
/**
* プッシュ (スタックにプッシュ、スタックにプッシュ) 操作。
*
* @parammixed $data データをスタックにプッシュします。
* @return object オブジェクト自体を返します。
*/
パブリック関数プッシュ($data) {
$this->スタック[$this->size++] = $data;
$this を返します;
}
/**
* スタックのポップ (イジェクト、ポップ) 操作。
*
* @returnmixed スタックが空の場合は FALSE を返し、それ以外の場合はスタックの最上位の要素を返します。
*/
パブリック関数 Pop() {
If (!$this->isEmpty()) {
$top = array_splice($this->stack, --$this->size, 1);
$top[0];
を返します
}
FALSE を返します;
}
/**
* スタックを取得します。
*
* @return array スタックを返します。
*/
パブリック関数 getStack() {
$this->stack;
を返す
}
/**
* スタックの最上位要素を取得します。
*
* @returnmixed スタックが空の場合は FALSE を返し、それ以外の場合はスタックの最上位の要素を返します。
*/
パブリック関数 getTop() {
If (!$this->isEmpty()) {
$this->stack[$this->size - 1];
を返します
}
FALSE を返します;
}
/**
* スタックの長さを取得します。
*
* @return integer リターンスタックの長さ。
*/
パブリック関数 getSize() {
$this->size;
を返す
}
/**
※スタックが空かどうかを確認してください。
*
* @return boolean スタックが空の場合は TRUE を返し、それ以外の場合は FALSE を返します。
*/
パブリック関数 isEmpty() {
0 を返す === $this->size;
}
}
?>
サンプルコード1
$stack = 新しいスタック();
$stack->push(1)->push(2)->push(3)->push(4)->push(5)->push(6);
echo '
'、print_r($stack->getStack(), TRUE)、'';
'、print_r($stack->getStack(), TRUE)、'';
注: PHP 配列関数には、すでにスタックのような関数、array_push (プッシュ) および array_pop (ポップ) が含まれています。