PHP中使用数组实现堆栈数据结构的代码
在堆栈中,最后压入的数据(进栈),将会被最先弹出(出栈)。
即在数据存储时采用“先进后出”的数据结构。
PHP中,将数组当做一个栈,主要是使用array_push()和array_pop()两个系统函数来完成。
入栈主要是利用array_push()函数向第一个参数的数组尾部添加一个或多个元素,然后返回新数组的长度,示例如下:
代码如下:
<?php
$zhan=array("WEB");//声明一个数组当做栈
array_push($zhan,"PHP");//将字符串压入栈(数组)中
array_push($zhan,"WWW.CHHUA.COM");//再压入一个元素
print_r($zhan);//打印数组内容
?>
出栈主要是利用array_pop()函数将数组的最后一个函数弹出,并将数组的长度减1,示例如下:
代码如下:
<?php
$zhan=array("WEB","www.chhua.com","WEB开发笔记","PHP","网站建设");//声明一个数组当做栈
array_pop($zhan);//将字符串出栈(数组)中
print_r($zhan);//打印数组内容 Array([0] => WEB[1] => www.chhua.com[2] => WEB开发笔记[3] => PHP)
?>
相关推荐
-
PHP基于堆栈实现的高级计算器功能示例
本文实例讲述了PHP基于堆栈实现的高级计算器功能.分享给大家供大家参考,具体如下: 当我们得到一个字符串运算式该如何去得出它的运算结果呢? 这时候我们就能使用堆栈的算法很巧妙的解决这个问题. 思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值[我们得从第一个字符开始截取],我们将开始截取位置设为一个循环增长的变量,初始化为[$index=0]),同时还需要创建两个栈,一个专门存放数字[$numStack],一个存放运算符[$operStack],我们
-
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
array_push() 定义和用法 array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 该函数等于多次调用 $array[] = $value. 语法 array_push(array,value1,value2...)参数 描述 array 必需.规定一个数组. value1 必需.规定要添加的值. value2 可选.规定要添加的值. 提示和注释 注释:即使数组中有字符串键名,您添加的元素也始终是数字键.(参见例子 2) 注释:如果用 a
-
基于PHP实现栈数据结构和括号匹配算法示例
本文实例讲述了基于PHP实现栈数据结构和括号匹配算法.分享给大家供大家参考,具体如下: 栈,体现的是后进先出,即LIFO.队列,体现的是先进先出,即FIFO. 栈操作: array_pop() //尾出 array_push() //尾进 或 array_shift()//头进 array_unshift()//头出 用例:验证一个数学算式是否正确,比如{2*3[x*y+5+m*(i-j)/3]+k*(4+(t+9))}. 分析:对于一个算式的正确与否,就是体现在,各种括号的匹配上,括号完全匹配
-
PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例
本文实例讲述了PHP栈的定义.入栈出栈方法及基于堆栈实现的计算器.分享给大家供大家参考,具体如下: 栈是线性表的一种,他的特点是后入先出,可以这么理解,栈就像一个存东西的盒子,先放进去的在最底层,后放进去的在上层,因为上层的东西把底层的东西压住了,下层的想要出去就必须把上层的先拿开才行. 介绍代码: data类:就是存放数据的类.()就是要放入栈的东西 stack类:是栈的类,整个对栈就在这个类中 主要方法: 入栈push_stack($data)检测栈是否已满,如果没满就让数据入栈. 出栈po
-
关于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线性表的入栈与出栈用法.分享给大家供大家参考.具体如下: <?php $stack = array("Simon", "Elaine"); //定义数组 array_push($stack, "Helen", "Peter"); //入栈 print_r($stack); ?> <?php $stack = array("Simon", "Elaine&quo
-
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
复制代码 代码如下: <?php /*函数array_push():将一个或多个单元压入数组的末尾(入栈) * 1.语法:int array_push ( array &array, mixed var [, mixed ...] ) * 2.描述:将 array 当成一个栈,并将传入的变量压入 array 的末尾.array 的长度将根据入栈变量的数目增加. * 3.注意事项: * 3.1.该函数返回数组新的元素的总数 * 3.2.如var为数组,则该数组是作为一个数组变量入栈到数组栈中,
-
PHP使用栈解决约瑟夫环问题算法示例
本文实例讲述了PHP使用栈解决约瑟夫环问题算法.分享给大家供大家参考,具体如下: 约瑟夫环问题: 39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀.然后下一个重新报数,直到所有人都自杀身亡为止.然而Josephus 和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏. <?php cla
-
PHP SPL标准库之数据结构栈(SplStack)介绍
栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplStack就是继承双链表(SplDoublyLinkedList)实现栈. 类摘要如下: 简单使用如下: //把栈想象成一个颠倒的数组 $stack = new SplStack(); /** * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为: * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyL
-
php array_pop()数组函数将数组最后一个单元弹出(出栈)
复制代码 代码如下: <?php /*函数array_pop():将数组最后一个单元弹出(出栈) * 1.语法:mixed array_pop ( array &array ) * 2.描述: 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一.如果 array 为空(或者不是数组)将返回 NULL. * 3.注意事项: * 3.1. */ echo "****************************************************
-
用PHP解决的一个栈的面试题
前言 遇到一道面试题,题目大概意思如下: 使用两个普通栈实现一个特殊栈,使得pop.push.min三个函数的都是复杂度为O(1)的操作,min函数是获得当前栈的最小值. 初步想法 1.要实现min函数为(1)操作,当时第一想法是事先需要算好当前最小值,于是会想到用一个值来保存当前栈中最小值元素,然后push和pop操作的时候维护这个值.这样min,push都是O(1)了,但pop可不是,如果当前弹出的是最小值,需要从新寻找当前元素的最小值,这个就不是o(1)了. 2.而且上面方法没有用到另外一
随机推荐
- C#正则表达式判断输入日期格式是否正确
- 用js的for循环获取radio选中的值
- Lua基础教程之表(Table)学习笔记
- Mybatis调用PostgreSQL存储过程实现数组入参传递
- Django+Vue.js搭建前后端分离项目的示例
- js实现点击左右按钮轮播图片效果实例
- 进出口英语全套书信集合
- Java集合ArrayDeque类实例分析
- 在PHP中使用灵巧的体系结构
- C#图片处理3种高级应用
- 相对路径和绝对路径的写法总结
- C语言中双向链表和双向循环链表详解
- Lua教程(六):绑定一个简单的C++类
- Python实现的检测网站挂马程序
- JavaScript入门系列课程之一
- Javascript之BOM(window对象)详解
- 图片引发的溢出危机(图)
- 易语言设置月历由星期几作为首日的方法
- C# 导出Excel的6种简单方法实现
- MySQL计算两个日期相差的天数、月数、年数