zoukankan      html  css  js  c++  java
  • (实用篇)PHP实现队列及队列原理

    队列是一种线性表,按照先进先出的原则进行的:

     PHP实现队列:第一个元素作为队头,最后一个元素作为队尾

    <?php
    /**
     * 队列就是这么简单
     * 
     * @link
     */
    $array =  array('PHP', 'JAVA');
    array_push($array, 'PYTHON'); //入队列
    array_shift($array); //出队列

    什么是双端队列(或双向队列)Deque,全名double-ended queue?

    即元素可以在队列的任意一段入队或出队,如果我们把这些方法叫做insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构。

    PHP实现双端队列

    <?php
    class Deque  
    { 
        public $queue = array(); 
        
        /**(尾部)入队  **/ 
        public function addLast($value)  
        { 
            return array_push($this->queue,$value); 
        } 
        /**(尾部)出队**/ 
        public function removeLast()  
        { 
            return array_pop($this->queue); 
        } 
        /**(头部)入队**/ 
        public function addFirst($value)  
        { 
            return array_unshift($this->queue,$value); 
        } 
        /**(头部)出队**/ 
        public function removeFirst()  
        { 
            return array_shift($this->queue); 
        } 
        /**清空队列**/ 
        public function makeEmpty()  
        { 
            unset($this->queue);
        } 
        
        /**获取列头**/
        public function getFirst()  
        { 
            return reset($this->queue); 
        } 
     
        /** 获取列尾 **/
        public function getLast()  
        { 
            return end($this->queue); 
        }
     
        /** 获取长度 **/
        public function getLength()  
        { 
            return count($this->queue); 
        }
        
    }
  • 相关阅读:
    hdu 1028 Ignatius and the Princess III (n的划分)
    CodeForces
    poj 3254 Corn Fields (状压DP入门)
    HYSBZ 1040 骑士 (基环外向树DP)
    PAT 1071 Speech Patterns (25)
    PAT 1077 Kuchiguse (20)
    PAT 1043 Is It a Binary Search Tree (25)
    PAT 1053 Path of Equal Weight (30)
    c++ 常用标准库
    常见数学问题
  • 原文地址:https://www.cnblogs.com/zhangmiaomiao/p/6013406.html
Copyright © 2011-2022 走看看