本文实例讲述了PHP实现的栈数据结构。分享给大家供大家参考,具体如下:
利用php面向对象思想,栈的属性有top、最大存储数、和存储容器(这里利用了php数组)。
代码如下:实现了入栈、出栈、遍历栈的几个方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<?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(); |
运行结果:
1
2
3
4
5
|
4 3 2 1 1 |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://www.cnblogs.com/firstForEver/p/5252277.html