簡單介紹一下在實際使用中,還可以有輸出受限的雙向佇列(即一個端點允許插入和刪除,另一個端點只允許插入的雙向佇列)和輸入受限的雙向佇列(即一個端點允許插入和刪除,另一個端點只允許刪除的雙向佇列)。而如果限定雙向佇列從某個端點插入的元素只能從該端點刪除,則該雙向佇列就蛻變為兩個棧底相鄰的棧了。
1.單向佇列:只能從頭進,從尾出
2.雙向佇列:頭尾都可以進出
<?php class duilie{ private $arr=array(); //从头进 public function Head_in($item){ return array_unshift($this->arr,$item); } //从头出 public function Head_out(){ return array_shift($this->arr); } //从尾进 public function Tail_in($item){ return array_push($this->arr,$item); } //从尾出 public function Tail_out(){ return array_pop($this->arr); } //清空队列 public function clear(){ unset($this->arr); } //显示队列 public function show(){ return implode(' ',$this->arr); } //获得队列队尾的值 public function get_last(){ return array_pop($this->arr); } //获得队列队首的值 public function get_first(){ return array_shift($this->arr); } } $obj=new duilie(); $obj->Tail_in('a'); $obj->Head_in('b'); $obj->Head_in('c'); $obj->Tail_out(); $arr=$obj->show(); echo $arr;?>
1.單向。佇列:只能從頭進,從尾出
2.雙向佇列:頭尾都可以進出
<?php class duilie{ private $arr=array(); //从头进 public function Head_in($item){ return array_unshift($this->arr,$item); } //从头出 public function Head_out(){ return array_shift($this->arr); } //从尾进 public function Tail_in($item){ return array_push($this->arr,$item); } //从尾出 public function Tail_out(){ return array_pop($this->arr); } //清空队列 public function clear(){ unset($this->arr); } //显示队列 public function show(){ return implode(' ',$this->arr); } //获得队列队尾的值 public function get_last(){ return array_pop($this->arr); } //获得队列队首的值 public function get_first(){ return array_shift($this->arr); } } $obj=new duilie(); $obj->Tail_in('a'); $obj->Head_in('b'); $obj->Head_in('c'); $obj->Tail_out(); $arr=$obj->show(); echo $arr;?>
相關推薦:
以上是php實作雙向佇列的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!