当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-23 10:04:14 浏览: 评论:0 

这篇文章主要介绍了PHP实现的栈数据结构,结合实例形式分析了php定义栈及入栈、出栈、遍历栈等相关操作技巧,需要的朋友可以参考下。

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

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

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

  1. <?php 
  2. class Stack{ 
  3.   const MAXSIZE = 4;// 栈最大容量 
  4.   private $top = -1; 
  5.   private $stack = array();// 利用数组存储数据 
  6.   public function __construct(){ 
  7.     $this->stack = array(); 
  8.   } 
  9.   // 入栈 
  10.   public function push($ele){ 
  11.     if ($this->top >= self::MAXSIZE-1){ 
  12.       echo 'stack is full...'
  13.       return false; 
  14.     } 
  15.     $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用 
  16.   } 
  17.   // 出栈,返回出栈元素 
  18.   public function pop(){ 
  19.     if ($this->top == -1){ 
  20.       echo 'stack is empty...'
  21.       return false; 
  22.     } 
  23.     $ele = $this->stack[$this->top]; 
  24.     unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别) 
  25.     return $ele
  26.   } 
  27.   // 遍历栈 
  28.   public function show(){ 
  29.     if ($this->top == -1){ 
  30.       echo 'stack is empty...'
  31.       return false; 
  32.     } 
  33.     for($i=$this->top; $i>-1; $i--){ 
  34.       echo $this->stack[$i].'<br/>'
  35.     } 
  36.   } 
  37. $stack = new Stack; 
  38. $stack->push(1); 
  39. $stack->push(2); 
  40. $stack->push(3); 
  41. $stack->push(4); 
  42. //print_r($stack); 
  43. $stack->show(); 
  44. $a = $stack->pop(); 
  45. $a = $stack->pop(); 
  46. $a = $stack->pop(); 
  47. $stack->show(); 

运行结果:

4
3
2
1
1

Tags: PHP栈数据 PHP遍历栈

分享到: