php 顺序结构,数据结构之栈——顺序存储结构(php代码实现)

数据结构之栈——顺序存储结构(php代码实现)

发布时间:2020-06-14 09:16:58

来源:51CTO

阅读:517

作者:great_yonchin

/**

1. DestroyStack(): 栈的销毁

2. ClearStack(): 将栈置为空栈

3. StackEmpty(): 判断栈是否为空

4. StackLength(): 返回栈的长度

5. GetTop(): 取得栈顶的元素

6. Push(): 插入新的栈顶元素

7. Pop(): 删除栈顶元素

8. StackTraverse(): 遍历栈元素

*/

//除了push和pop方法外,其余的方法和之前线性表的顺序存储的代码实现基本相同

class SqStack{

public $SqArr;//此处是用于存储栈元素的数组

private  $top; //表示栈顶,相当于数组的最后一个元素下标

public function __construct($SqArr){

$this->SqArr=$SqArr;

$this->top=count($SqArr)-1;

}

//栈的销毁

public function DestroyStack(){

$this->SqArr=null;

$this->top=-1;

}

//将栈置为空栈

public function ClearStack(){

$this->SqArr=array();

$this->top=-1;

}

//判断栈是否为空

public function StackEmpty(){

if($this->top==-1){

return 'Null';

}else{

return 'No Null';

}

}

//返回栈的长度

public function StackLength(){

if(is_null($this->SqArr)){

return null;

}

return $this->top+1;

}

//取得栈顶的元素

public function GetTop(){

if($this->top==-1){

return 'ERROR';

}

return $this->SqArr[$this->top];

}

//插入新的栈顶元素

public function Push($elem){

$this->top++;

$this->SqArr[$this->top]=$elem;

}

//删除栈顶元素

public function Pop(){

if($this->top==-1){

return 'ERROR';

}

$p=$this->SqArr[$this->top];

unset($this->SqArr[$this->top]);

//注,此句可以有也可以没有,如果此语句存在,则在堆栈内存中会将此栈顶元素真正的删除;倘若没有此语句,则仅仅是top指针不在指向此栈顶元素了。另外,此语句有没有对应的下面的遍历方法的实现也不同,没有则对应StackTraverse()方法,有则对应StackTraverse2()方法。

$this->top--;

return $p;

}

//遍历栈元素

public function StackTraverse(){

if(is_null($this->SqArr)){

return null;

}

$arr=array();

for($i=0;$i<=$this->top;$i++){

$arr[]=$this->SqArr[$i];

}

return $arr;

}

public function StackTraverse2(){

return $this->SqArr;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值