首頁 >後端開發 >php教程 >PHP實作的堆疊資料結構範例講解

PHP實作的堆疊資料結構範例講解

jacklove
jacklove原創
2018-07-06 17:37:152009瀏覽

這篇文章主要介紹了PHP實現的棧資料結構,結合實例形式分析了php定義棧及入棧、出棧、遍歷棧等相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP實作的棧資料結構。分享給大家供大家參考,具體如下:

利用php物件導向思想,堆疊的屬性有top、最大儲存數、和儲存容器(這裡利用了php陣列)。

程式碼如下:實作了入堆疊、出棧、遍歷堆疊的幾個方法:

<?php
class Stack{
  const MAXSIZE = 4;// 栈最大容量
  private $top = -1;
  private $stack = array();// 利用数组存储数据
  public function __construct(){
    $this->stack = array();
  }
  // 入栈
  public function push($ele){
    if ($this->top >= self::MAXSIZE-1){
      echo &#39;stack is full...&#39;;
      return false;
    }
    $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用
  }
  // 出栈,返回出栈元素
  public function pop(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    $ele = $this->stack[$this->top];
    unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别)
    return $ele;
  }
  // 遍历栈
  public function show(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    for($i=$this->top; $i>-1; $i--){
      echo $this->stack[$i].&#39;<br/>&#39;;
    }
  }
}
$stack = new Stack;
$stack->push(1);
$stack->push(2);
$stack->push(3);
$stack->push(4);
//print_r($stack);
$stack->show();
$a = $stack->pop();
$a = $stack->pop();
$a = $stack->pop();
$stack->show();

運行結果:

4
3
2
1
1

您可能感興趣的文章:

laravel技巧之查詢建構子Query Builder疊加鍊式呼叫方法的講解

php實作斐波那契數列程式碼的分享

##PHP基於二分法實作陣列查找功能範例講解

以上是PHP實作的堆疊資料結構範例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php的可變函數下一篇:php的可變函數