간단한 소개: 실제 사용에는 출력이 제한된 양방향 대기열(즉, 한 끝점은 삽입과 삭제를 허용하고 다른 끝점은 삽입만 허용하는 양방향 대기열)과 양방향 대기열이 있을 수도 있습니다. 제한된 입력(즉, 한 끝점은 삽입을 허용함)과 삭제가 있는 대기열을 사용하고, 다른 끝점은 대기열 제거만 허용합니다. 그리고 양방향 큐의 특정 끝점에서 삽입된 요소가 해당 끝점에서만 삭제되도록 제한되면 양방향 큐는 맨 아래에 있는 두 개의 인접한 스택으로 변환됩니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!