推荐:《PHP视频教程》
一、栈的定义及知识
1.定义:栈又称为栈或者堆叠,是计算机科学中的一种特殊的串列形式的抽象数据类型,特殊之处在于只允许在链表或者数组的一端(堆栈顶端指针,又称 "top")加入数据push(压栈)和输出数据pop(弹栈),另外栈也可以使用一维数组和链表来实现。
2.栈的特点:
a.先进后出(后进先出),也就是说,我们只能在栈顶端push(压栈)加入数据,也只能在栈顶端pop(弹栈)删除数据;
b.栈除了top(栈顶)和base(栈底)之外,其他的每个元素都有一个前驱和后继;
二、php简单实现栈结构
<?php
class HeapStack{
private $stackArr = array();
private $stackMaxTop = 10; // 栈顶最大值(用于控制栈长度,是否栈满)
private $top = -1; // 栈顶(会随着push或pop的操作而变化)
private $out;
/**
* 入栈
*
*/
public function pushValue($value='')
{
if(empty($value))
return '压入的值不能为空';
if($this->top == $this->stackMaxTop)
return '栈内已满';
array_push($this->stackArr, $value);
++$this->top;
return '入栈成功,栈顶值:'.$this->top;
}
/**
* 出栈
*
*/
public function popValue()
{
if($this->top == -1)
return '栈内没有数据';
$this->out = array_pop($this->stackArr);
--$this->top;
return '出栈成功,当前栈顶值:'.$this->top.'出栈值:'.$this->out;
}
/**
* 获取栈内信息
*/
public function getSatck()
{
return $this->stackArr;
}
public function __destruct()
{
echo 'over ';
}
}
$stack = new HeapStack();
echo $stack->pushValue('stackValue')."\n";
echo $stack->pushValue('stackValue2')."\n";
var_dump($stack->getSatck());
echo $stack->popValue()."\n";
var_dump($stack->getSatck());
以上就是教你用php实现栈结构的详细内容,更多请关注爱上源码网其它相关文章!
微信
分享
相关标签:栈
本文转载于:cnblogs,如有侵犯,请联系916990011@qq.com删除
- 上一篇:解析PHP标准库SPL数据结构
- 下一篇:分享几种用PHP写99乘法表的方式
相关文章
相关视频
- php全栈是什么
- php全栈工程师培训
- 全栈是什么意思?
- 一起看看 鸿蒙 JavaScript GUI 技术...
- 教你用php实现栈结构
- flex布局演示案例
- 项目属性与order实例1
- 项目属性与order实例
- flex容器常用属性详解1
本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn!
本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~ |