栈和队列的实现(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()。

有什么问题欢迎随时提问。

posted @ 2017-06-19 18:19  木子点点  阅读(1737)  评论(0编辑  收藏  举报