栈和队列的实现(PHP)

Posted 木子点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和队列的实现(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()。

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

以上是关于栈和队列的实现(PHP)的主要内容,如果未能解决你的问题,请参考以下文章

表栈和队列

栈和队列的面试题Java实现

python的栈和队列的实现代码

python的栈和队列的实现代码

数据结构之栈和队列

栈和队列基本操作