PHP使用两个栈实现队列功能的方法
本文实例讲述了PHP使用两个栈实现队列功能的方法。分享给大家供大家参考,具体如下:
问题
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解决思路
两个栈。出栈的时候,如果栈2不为空,就出栈2。如果栈2为空,就把栈1的出栈再入栈2。
实现代码
<?php $arr1 = array(); $arr2 = array(); function mypush($node) { array_push($arr1,$node); } function mypop() { if(!empty($arr2)){ return array_pop($arr2); }else{ while(!empty($arr1)){ array_push($arr2, array_pop($arr1)); } return array_pop($arr2); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
- PHP基于数组实现的堆栈和队列功能示例
- 关于PHP堆栈与列队的学习
- php线性表的入栈与出栈实例分析
- PHP基于堆栈实现的高级计算器功能示例
- PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
- PHP实现基于栈的后缀表达式求值功能
- PHP使用数组实现队列
- php实现的双向队列类实例
- 队列在编程中的实际应用(php)
- php基于双向循环队列实现历史记录的前进后退等功能
- PHP实现的链式队列结构示例
相关推荐
-
PHP使用数组实现队列
PHP中将数组当做一个栈,主要是使用array_push()和array_pop()两个系统函数来完成.入栈主要是利用array_push()函数向第一个参数的数组尾部添加一个或多个元素,然后返回新数组的长度,示例如下: 而PHP中,将数组当作是队列则主要是用array_push()和array_shift()实现. 复制代码 代码如下: <?php $zhan=array("WEB");//声明一个数组当做队列 array_push($zhan,"PHP")
-
php实现的双向队列类实例
本文实例讲述了php实现的双向队列类及其用法,对于PHP数据结构与算法的学习有不错的参考价值.分享给大家供大家参考.具体分析如下: (deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构.双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行. 在实际使用中,还可以有输出受限的双向队列(即一个端点允许插入和删除,另一个端点只允许插入的双向队列)和输入受限的双向队列(即一个端点允许插入和删除,另一个端点只允许删除的双向队列).而如果限定双向队列从某个
-
PHP实现的链式队列结构示例
本文实例讲述了PHP实现的链式队列结构.分享给大家供大家参考,具体如下: <?php header("Content-Type:text/html;charset=utf-8"); /** * 链式队列 */ class node{ public $nickname; public $next; } class queue { public $front;//头部 public $tail;//尾部 public $maxSize;//容量 public $next;//指针 p
-
PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
本文实例讲述了PHP实现的栈数据结构.分享给大家供大家参考,具体如下: 利用php面向对象思想,栈的属性有top.最大存储数.和存储容器(这里利用了php数组). 代码如下:实现了入栈.出栈.遍历栈的几个方法: <?php class Stack{ const MAXSIZE = 4;// 栈最大容量 private $top = -1; private $stack = array();// 利用数组存储数据 public function __construct(){ $this->sta
-
PHP实现基于栈的后缀表达式求值功能
本文实例讲述了PHP实现基于栈的后缀表达式求值功能.分享给大家供大家参考,具体如下: 后缀表达式概述 后缀表达式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则). 实现代码: <?php class Stack{ public $stack; public $stack_top; public function __construct(){ $this->stack=array(); $this->stack_t
-
php线性表的入栈与出栈实例分析
本文实例讲述了php线性表的入栈与出栈用法.分享给大家供大家参考.具体如下: <?php $stack = array("Simon", "Elaine"); //定义数组 array_push($stack, "Helen", "Peter"); //入栈 print_r($stack); ?> <?php $stack = array("Simon", "Elaine&quo
-
队列在编程中的实际应用(php)
一:队列的概念.数据结构 队列(Queue)是运算受到限制的一种线性表.只允许在表的一端进行插入,而在另一端进行删除元素的线性表.队尾(rear)是允许插入的一端.队头(front)是允许删除的一端.空队列是不含元素的空表. 假设有个队列Q=(a1,a2,-,an),则a1为队头元素,an为队尾元素.元素入队的次序为a1,a2,-,an,而出队的次序为a1,a2,-,an.可见队列的操作是按照先进先出的原则进行的. 其他详细的介绍请在网上搜索很多资料. 二:PHP的队列 在PHP中队列以数组的形
-
关于PHP堆栈与列队的学习
在PHP中数组常被当作堆栈(后进先出:LIFO)与队列(先进先出:FIFO)结构来使用.PHP提供了一组函数可以用于push与pop(堆栈)还有shift与unshift(队列)来操作数组元素.堆栈与列队在实践中应用非常广泛.我们可以先看下堆栈: 复制代码 代码如下: <?php $arr = array(); array_push($arr,'aaa'); array_push($arr,'bbb'); $arr.pop(); print_r($arr);?> 如果你打
-
php基于双向循环队列实现历史记录的前进后退等功能
本文实例讲述了php基于双向循环队列实现历史记录的前进后退等功能.分享给大家供大家参考.具体如下: 为实现一个记录操作历史的功能 1. 和撤销,反撤销功能类似的一个功能.(实现操作的前进后退) 2. 和discuz论坛登录后查看帖子(可以前进后退查看过的帖子,还有帖子查看历史记录) 3. 逻辑和windows资源管理器地址栏前进后退功能一样. 根据这种需要,实现了一个数据结构.写了一个通用的类,暂叫历史记录类吧. [原理和时钟类似.实例化对象时可以构造长度为N(可以根据需要定长度)个节点的环]
-
PHP基于数组实现的堆栈和队列功能示例
本文实例讲述了PHP基于数组实现的堆栈和队列功能.分享给大家供大家参考,具体如下: 堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器.下面呢,就分别讲下这两种容器在PHP中的应用: 一.使用数组实现堆栈: 1.堆栈容器中,最后进栈的将会被最先出栈,即所谓的"先进后出"的数据结构. 2.在PHP中,将数组当做一个栈,可使用array_push()函数或者以"$array[]=$value"完成进栈操作,使用array_pop()函数完成出栈操作. 3
-
PHP基于堆栈实现的高级计算器功能示例
本文实例讲述了PHP基于堆栈实现的高级计算器功能.分享给大家供大家参考,具体如下: 当我们得到一个字符串运算式该如何去得出它的运算结果呢? 这时候我们就能使用堆栈的算法很巧妙的解决这个问题. 思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值[我们得从第一个字符开始截取],我们将开始截取位置设为一个循环增长的变量,初始化为[$index=0]),同时还需要创建两个栈,一个专门存放数字[$numStack],一个存放运算符[$operStack],我们
随机推荐
- php 修改、增加xml结点属性的实现代码
- 简述php环境搭建与配置
- PHP生成带有雪花背景的验证码
- 利用python模拟sql语句对员工表格进行增删改查
- MySQL利用procedure analyse()函数优化表结构
- css动态模糊效果
- 基于C#实现的三层架构实例
- JavaScript中反正弦函数Math.asin()的使用简介
- MySQL学习笔记小结
- Win8.1 + CentOS7 双系统 U盘安装(超详细教程)
- linux线程的取消(终止)方法
- oracle密码过期的彻底解决方案
- javascript 也来玩玩图片预加载
- IIS环境下PHP rewrite重写设置(支持中文参数)
- 浅谈Java中的Filter过滤器
- php注入实例
- Could not load type System.ServiceModel.Activation.HttpModule解决办法
- C# 拷贝数组的几种方法(总结)
- PHP怎样调用MSSQL的存储过程
- PHP实现正则表达式分组捕获操作示例