首頁 >後端開發 >php教程 >PHP實作的堆疊資料結構範例【入棧、出棧、遍歷棧】_php技巧

PHP實作的堆疊資料結構範例【入棧、出棧、遍歷棧】_php技巧

韦小宝
韦小宝原創
2017-12-15 10:20:131631瀏覽

這篇文章主要介紹了PHP實作的堆疊資料結構,結合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

以上就是本文所有的內容了,希望可以帶給大家幫助! !

相關推薦:

#實例分析PHP單一檔案與多檔案上傳

#php中的類別與物件範例詳解

php產生縮圖品質較差解決方法


以上是PHP實作的堆疊資料結構範例【入棧、出棧、遍歷棧】_php技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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