数据结构之队列——顺序存储结构(php代码实现——方法一)
<?php/***第一种——非循环顺序队列的实现方法*队列的头元素在为数组的下标为0的元素*这种方法的优缺点:*优点:头元素始终在下标为0的第一个元素,因此不需要设置头指针*缺点:元素出队是会移动大量元素,时间复杂度为O(n),效率比较低**/classSqQueue{private$SqArr;//队列存储数组private$rear;//若队列不为空,则指向队尾元素的后一个位置publicfunction__construct(){$this->SqArr=array();$this->rear=0;}//销毁链栈publicfunctionDestroyQueue(){$this->SqArr=null;$this->rear=0;}//清空队列publicfunctionClearQueue(){$this->SqArr=array();$this->rear=0;}//队列是否为空publicfunctionQueueEmpty(){if($this->rear==0){return'Null';}else{return'NoNull';}}//队列的长度publicfunctionQueueLength(){return$this->rear;}//取得队头元素publicfunctionGetHead(){return$this->SqArr[0];}//从队尾插入元素publicfunctionEnQueue($elem){$this->SqArr[$this->rear++]=$elem;}//从队头删除元素publicfunctionDeQueue(){if($this->rear==0){return'ERROR';}for($i=1;$i<$this->rear;$i++){$this->SqArr[$i-1]=$this->SqArr[$i];}unset($this->SqArr[$this->rear-1]);//移动完成后,最后一个元素也就最后一个元素也就不存在了,所以释放掉。$this->rear--;return'OK';}//遍历队列元素publicfunctionQueueTraverse(){$arr=array();for($i=0;$i<$this->rear;$i++){$arr[]=$this->SqArr[$i];}return$arr;return$this->SqArr;}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。