반응형
양방향 큐:머리도 들어가고 꼬리도 들어가고 머리도 나오고 꼬리도 나오고
<?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] => 이사
)
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 자동 로딩 메커니즘 구현 (0) | 2022.07.27 |
---|---|
PHP 이미지를 데이터베이스에 업로드하여 표시 (0) | 2022.07.27 |
Nginx가 Upstream을 사용하여 움직임 분리하기 (0) | 2022.07.27 |
PHP 정책 패턴 쓰기 (0) | 2022.07.27 |
CrossPHP 프레임워크의 상용 동작 (0) | 2022.07.27 |