首页 > 代码库 > 数据结构之栈——顺序存储结构(php代码实现)
数据结构之栈——顺序存储结构(php代码实现)
<?php /** 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; } }
本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1599657
数据结构之栈——顺序存储结构(php代码实现)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。