>  기사  >  백엔드 개발  >  PHP에서 양방향 대기열을 구현하는 예

PHP에서 양방향 대기열을 구현하는 예

小云云
小云云원래의
2018-03-07 09:28:101668검색

간단한 소개: 실제 사용에는 출력이 제한된 양방향 대기열(즉, 한 끝점은 삽입과 삭제를 허용하고 다른 끝점은 삽입만 허용하는 양방향 대기열)과 양방향 대기열이 있을 수도 있습니다. 제한된 입력(즉, 한 끝점은 삽입을 허용함)과 삭제가 있는 대기열을 사용하고, 다른 끝점은 대기열 제거만 허용합니다. 그리고 양방향 큐의 특정 끝점에서 삽입된 요소가 해당 끝점에서만 삭제되도록 제한되면 양방향 큐는 맨 아래에 있는 두 개의 인접한 스택으로 변환됩니다.

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(&#39; &#39;,$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(&#39;a&#39;);    $obj->Head_in(&#39;b&#39;);    $obj->Head_in(&#39;c&#39;);    $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(&#39; &#39;,$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(&#39;a&#39;);    $obj->Head_in(&#39;b&#39;);    $obj->Head_in(&#39;c&#39;);    $obj->Tail_out();    $arr=$obj->show();    echo $arr;?>

관련 권장 사항:

양방향 대기열 수업 과정 권장 사항

PHP를 사용하여 양방향 대기열 코드 예제를 구현하는 방법

php 양방향 대기열 클래스

위 내용은 PHP에서 양방향 대기열을 구현하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.