0%

php-队列和栈

PHP里面没有栈和队列,但是可以通过数组来模拟,主要用到以下几个函数:

1
2
3
4
5
array_push   数组末尾增加一个元素 

array_pop  数组末尾删除一个元素

array_shift 数组头部删除一个元素

先看栈:

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
<?php

class Stack{
public static $dataInfo = array();
public static $theMax= 10;
public static $length=0;
// public static $stackInfo;

public function addData($data){
if(self::$length >= self::$theMax){
return false;
}else{
array_push(self::$dataInfo,$data);
self::$length ++;
}

}
public function outData(){
if(self::$length<=0 ){

return false;
}else{
$data = array_pop(self::$dataInfo);
self::$length --;
return $data;
}


}

public function getAll(){
foreach (self::$dataInfo as $value) {
// code..
print_r($value);
}
}

}
$a = new Stack();
$a->addData(1);
$a->addData(3);
$a->addData(5);
$a->getAll();
print_r($a->outData());


?>

同理,队列也是一样的 只不过可以把array_pop()换成array_shift()。
栈和队列的区别在于前者是先入后出,像在杯子里放东西一样,先放进去的最后才能拿出来。队列就像排队吃饭一样,先进先出。