이 논문은 원칙적으로 PHP 큐와 큐 기반 쓰기 파일 케이스의 예를 설명합니다. 다음과 같이 참조 용으로 공유 :
큐가 직선 형태로되면, FIFO 원리에 따라 수행 :
팀 속으로 :
팀 :
PHP 큐 : 팀 머리로 첫 번째 요소, 꼬리의 마지막 요소로
$array = array('PHP', 'JAVA');
array_push($array, 'PYTHON'); //入队列
array_shift($array); //出队列
스택, 큐
스택 만 데이터 항목에 액세스 할 수 있습니다 : 삽입 된 마지막 데이터 항목, 등등 액세스 데이터 항목의 끝에서 두 번째 삽입을 데이터 항목을 제거하고 후.
큐 다소 유사한 스택 하지만에서 큐에 제 1 데이터 항목의은에있는 동안 (FIFO는 FIFO)을 제거 할 수있는 제 삽입되어 적층 마지막 데이터 항목이 상기 제 제거 (LIFO)에 삽입된다. 큐 와 스택 프로그래머 등은 도구로 사용된다. 또한 아날로그 사람들이 은행에서 라인에서 기다리고로, 실제 환경을 시뮬레이션 할 수 있습니다
이중 종료 큐 (또는 양방향 큐) 란 무엇입니까?
우리가 insertLeft ()와 insertRight ()가 호출이 방법을 넣어 removeLeft ()와 removeRight () 경우 그 요소는 팀 또는 팀의 기간에 큐에있을 수있다. 통화 엄격히 insertLeft () 및 removeLeft () 메소드를 금지 (또는 우측 부분의 동작을 해제)과 같은 스택 큐 기능을 더블 엔디드 경우. 금지 호출 insertLeft () 및 removeRight () (또는 다른 방법의 반대)와 동일한 대기열을 특징으로한다. 스택 또는 큐 양단에 비해 데이터 구조는 다용도.
양단 큐 이름은 그 두 끝을 가지고, 제안 그것의 끝, 일반 큐는 두 끝, 하나의 입력과 하나 개의 출력을 가지고 무엇을. 양단은 양단하지만, 입력 및 출력 될 수의 양단이있다 :
큐의 어떤 이점이 많은, 우선 그 밖의 각 세그먼트에 맞지 않을 수도있다, 만약 전용으로 타단 밖으로 나눠 의해 그의 역할은 그것이 하나의 입력 및 출력 단자 인 경우, 큐는 동일 그래서 그와 스택 효과는 동일합니다.
PHP 구현 양단 큐
class Deque
{
public $queue = array();
/**(尾部)入队 **/
public function addLast($value)
{
return array_push($this->queue,$value);
}
/**(尾部)出队**/
public function removeLast()
{
return array_pop($this->queue);
}
/**(头部)入队**/
public function addFirst($value)
{
return array_unshift($this->queue,$value);
}
/**(头部)出队**/
public function removeFirst()
{
return array_shift($this->queue);
}
/**清空队列**/
public function makeEmpty()
{
unset($this->queue);
}
/**获取列头**/
public function getFirst()
{
return reset($this->queue);
}
/** 获取列尾 **/
public function getLast()
{
return end($this->queue);
}
/** 获取长度 **/
public function getLength()
{
return count($this->queue);
}
}
실제 사용시,도 양방향 출력 큐가 제한 될 수있다 (삽입과 삭제가 엔드 포인트를 허용 즉 다른 포인트 만 양방향 큐 삽입 할 수 있음)와 양방향 입력 큐가 제한된다 (즉, 삽입 및 삭제 또, 엔드 포인트를 허용 엔드 포인트는 큐가 삭제 양방향) 할 수 있습니다. 끝점 요소로부터 삽입 제한 양방향 대기열 만 포인트에서 삭제 될 경우, 스택의 바닥에있는 양방향 큐 개의 인접 스택 업으로 변환.
용도 :
비동기 대기열은 물론 데이터가 데이터베이스에 데이터를 삽입 할 때 자주 자주 검색 엔진에 제출 데이터 큐 삽입 비동기 적으로 수행 될 수있는, 저장되어 처리 될 수있다. 또한, 프로세싱 로직 것은 느려질 수 있고, 이러한 추천 FLV 비디오 변환, 전송 SMS, 전자 메일과 같은 배경에서 상기 메시지 큐 처리에 의해 동시에 처리 로직의 수에 제한이있다.