`

【面试题】用php实现一个双向队列

阅读更多

主旨:主要是考数组的函数

 

  • array_pop    array_push  
    array_pop   array_pop() 函数删除数组中的最后一个元素。删除尾部一
    array_push    array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
    该函数等于多次调用 $array[] = $value。 尾部塞入一
     
  • array_unshift    array_shift  
    array_shift()       函数删除数组中第一个元素,并返回被删除元素的值。 删除头第一
    array_unshift()      函数用于向数组插入新元素。新数组的值将被插入到数组的开头。 插入头第一
    
     
  • reset    end  
    reset   reset() 函数将内部指针指向数组中的第一个元素,并输出。
    end    end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。

实现代码:

<?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); 
    }
    
}

 

 

 

分享到:
评论

相关推荐

    消息队列常见面试题夜间版

    消息队列常见面试题夜间版 本文将从消息队列的基本概念开始,逐步深入到消息队列的设计原则、事务消息、索引设计、日志段读写解析、控制器事件处理全流程解析、请求处理全流程解析等方面,涵盖了RocketMQ和Kafka两...

    java基础面试题用两个栈实现一个队列

    java基础面试题用两个栈实现一个队列本资源系百度网盘分享地址

    消息队列常见面试题笔记

    消息队列常见面试题笔记

    7道消息队列ActiveMQ面试题!

    ActiveMQ是一款非常流行的开源消息队列中间件,它实现了JMS(Java Message Service,Java消息服务)1.1规范,面向消息的中间件(Message Oriented Middleware,MOM)是指利用高效可靠的消息传递机制进行与平台无关的...

    腾讯PHP面试题_腾讯php面试题_

    最新腾讯PHP面试题1. php 的垃圾回收机制 PHP 可以自动进行内存管理,清除不需要的对象。 PHP 使用了引用计数 (reference counting) GC 机制。 每个对象都内含一个引用计数器 refcount,每个 reference 连接到对象,...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...

    Java消息队列常见面试题2022

    Java消息队列(Java ...以上内容只是Java消息队列面试准备的一部分,实际面试中还可能涉及到更多具体的技术细节和实际应用案例。通过深入学习和实践,你可以更好地理解和运用这些知识,提升自己在面试中的竞争力。

    php面试题开发教程文档.docx

    php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题php面试题...

    云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云

    云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备...

    Java实现栈和队列面试题

    这是一个常见的面试题,利用两个栈,一个作为入队栈,另一个作为出队栈。入队操作直接将元素压入入队栈,出队时若出队栈为空,则将入队栈所有元素弹出并压入出队栈,然后从出队栈弹出元素。 4. **两个队列实现一个...

    牛客大数据面试题集锦+答案,共523道,46W+字。大厂必备

    面试题总结是一个长期工作,面试不停,这份面试题总结就不会停。以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,...

    新浪PHP面试题新浪PHP面试题

    【标签】"新浪PHP面试题"这个标签进一步确认了主题,意味着我们将会看到与新浪公司面试流程相关的PHP技术问题。 根据压缩包子文件的文件名称,我们可以推测其中包含的是张伟(可能是一位面试官或技术专家)在2009年...

    个人面试题总结(java,数据库,前端).zip

    所以面试题数量也是不少的,里面也包含了个人的一些总结和见解,比如说在集合方面的知识点有实现的各自特点,他们之间的区别,以及等等原理和实现的细节,还包含了java和前端的面试宝典,一个宝典大概有500页左右,

    7道消息队列ActiveMQ面试题!.zip

    ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它实现了多种消息协议,如JMS(Java Message Service),STOMP,AMQP等,支持多种语言的客户端,并且提供了高可用性和可伸缩性。 3. **JMS(Java Message ...

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、...

    C++面试题集.pdf

    面试题:实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 答案: // 删除一个节点P template void list&lt;type&gt;::delnode(int p) { int k = 1; listnode&lt;type&gt; *ptr, *t; ptr = first; while ...

    2022年最新iOS面试题附答案.docx

    2. 声明队列:可以通过 dispatch_queue_create 函数声明一个队列,第一个参数是标识队列的,第二个参数是用于定义队列的参数。 3. 执⾏队列:可以通过 dispatch_async 函数执⾏一个队列,提供由队列运⾏的代码块。 ...

    360架构师 分享 超详细大厂程序员高频面试题-如何用栈实现队列

    360架构师 分享 超详细大厂程序员高频面试题-如何用栈实现队列 站台巨人肩膀上,弯道超车,秒杀面试官

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    实现一个拷贝文件的类使用字节流还是字符串.mp4 │ Java面试题13.线程的实现方式 怎么启动线程怎么区分线程.mp4 │ Java面试题14.线程并发库和线程池的作用?.mp4 │ Java面试题15.设计模式和常用的设计模式.mp4 │ ...

Global site tag (gtag.js) - Google Analytics