棧和隊列的實現(PHP)


最近經常被問棧和隊列的算法題,以前對鏈表,二叉樹有了解,棧和隊列感覺有點迷糊,后來查看了后,發現就是利用數組模擬先進先出和先進后出的情況。

瞬間感覺問這個不如問鏈表呢。

下面回歸正題:先看棧

<?php

 class Stack{
     public static $dataInfo =  array();
     public static $theMax= 10;
     public static $length=0;
    // public static $stackInfo;

     public function addData($data){
         if(self::$length >= self::$theMax){
             return false;
         }else{
           array_push(self::$dataInfo,$data);
           self::$length ++; 
         }
         
     }
     public function outData(){
         if(self::$length<=0 ){
             
             return false;
         }else{
            $data = array_pop(self::$dataInfo);
            self::$length --;
             return $data;
         }
         
         
     }
     
     public function getAll(){
         foreach (self::$dataInfo as $value) {
             // code..
             print_r($value);
         }
     }
     
 }
$a = new Stack();
$a->addData(1);
$a->addData(3);
$a->addData(5);
$a->getAll();
print_r($a->outData());


?>

同理,隊列也是一樣的 只不過可以把array_pop()換成array_shift()。

有什么問題歡迎隨時提問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM