PHP实现的栈数据结构示例【入栈、出栈、遍历栈】

yipeiwu_com6年前PHP代码库

本文实例讲述了PHP实现的栈数据结构。分享给大家供大家参考,具体如下:

利用php面向对象思想,栈的属性有top、最大存储数、和存储容器(这里利用了php数组)。

代码如下:实现了入栈、出栈、遍历栈的几个方法:

<?php
class Stack{
  const MAXSIZE = 4;// 栈最大容量
  private $top = -1;
  private $stack = array();// 利用数组存储数据
  public function __construct(){
    $this->stack = array();
  }
  // 入栈
  public function push($ele){
    if ($this->top >= self::MAXSIZE-1){
      echo 'stack is full...';
      return false;
    }
    $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用
  }
  // 出栈,返回出栈元素
  public function pop(){
    if ($this->top == -1){
      echo 'stack is empty...';
      return false;
    }
    $ele = $this->stack[$this->top];
    unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别)
    return $ele;
  }
  // 遍历栈
  public function show(){
    if ($this->top == -1){
      echo 'stack is empty...';
      return false;
    }
    for($i=$this->top; $i>-1; $i--){
      echo $this->stack[$i].'<br/>';
    }
  }
}
$stack = new Stack;
$stack->push(1);
$stack->push(2);
$stack->push(3);
$stack->push(4);
//print_r($stack);
$stack->show();
$a = $stack->pop();
$a = $stack->pop();
$a = $stack->pop();
$stack->show();

运行结果:

4
3
2
1
1

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHPExcel合并与拆分单元格的方法

本文实例讲述了PHPExcel合并与拆分单元格的方法。分享给大家供大家参考,具体如下: $objPHPExcel; $filepath="c:\temp.xlsx"; try {...

合格的PHP程序员必备技能

作为PHP的爱好者,如果你想加入PHP程序的世界,一定要做好充分的准备。 如果想进入大的企业进行底层开发的话必须对互联网各方面的技术原理了解的很清楚,例如apache实现原理。语言方面既...

PHP实现的链式队列结构示例

PHP实现的链式队列结构示例

本文实例讲述了PHP实现的链式队列结构。分享给大家供大家参考,具体如下: <?php header("Content-Type:text/html;charset=ut...

解析Ubuntu下crontab命令的用法

cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多。想要让cron执行...

PHP实现字符串的全排列详解

PHP实现字符串的全排列详解

输入一个字符串,按字典序打印出该字符串中字符的所有排列。 例如,输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路...