개발 꿀팁/PHP

PHP 구현 큐 양방향 큐

Jammie 2022. 7. 27. 15:01
반응형

양방향 큐:머리도 들어가고 꼬리도 들어가고 머리도 나오고 꼬리도 나오고

<?php

class Queue {

	private $array    = array(); //빈 배열 선언
	private $max_num  = 2; //최대 입단 개수


	//선두에 서다
	public function setFirst($item){
		if($this->queueConut() < $this->max_num){
			return array_unshift($this->array,$item);
		}
		echo '대열이 이미 꽉 찼다';
	}

	//선두에 나서다
	public function getFirst(){
		if($this->queueConut() > 0){
			return array_shift($this->array);
		}
		echo '큐에 데이터가 없습니다';
	}

	 
	//미입열
	public function setLast($item){
		if($this->queueConut() < $this->max_num){
			return array_push($this->array,$item);
		}
		echo '대열이 이미 꽉 찼다';
	}

	 
	//오출열
	public function getLast(){
		if($this->queueConut() > 0){
			return array_pop($this->array);
		}
		echo '큐에 데이터가 없습니다';
		
	}

	//큐 보기
	public function shows(){
		print_r($this->array);
	}

	//대열을 비우다
	public function emptys(){
		if($this->queueConut() > 0){
			unset($this->array);
		}
		echo '큐에 데이터가 없습니다';
	}

	//대기열 개수 가져오기
	private function queueConut(){
		return count($this->array);
	}


}
$Queue = new Queue();

$Queue->setFirst('장삼');
$Queue->shows();
$Queue->setFirst('이사');
$Queue->shows();
$Queue->setFirst('왕이');
$Queue->shows();
$Queue->getLast();
$Queue->shows();

최종실현효과

Array
(
    [0] => 장삼
)
Array
(
    [0] => 이사
    [1] => 장삼
)
대열이 이미 꽉 찼다
Array
(
    [0] => 이사
    [1] => 장삼
)
Array
(
    [0] => 이사
)

 

반응형