queue 예제

접근 방식 [B]에는 이러한 오버헤드가 없지만 첫 번째 요소를 제거한 후 머리를 한 위치로 이동할 때마다 큐의 크기가 매번 한 공간씩 줄어듭니다. 큐에서 요소를 제거하면 위의 다이어그램에서 [A] 및 [B]에 대해 언급한 두 가지 방법을 따를 수 있습니다. [A] 접근 방식에서는 헤드 위치에서 요소를 제거한 다음 다른 모든 요소를 방향 위치로 하나씩 이동합니다. 큐는 또한 추상 데이터 형식 또는 선형 데이터 구조, 스택 데이터 구조 처럼, 첫 번째 요소는 REAR (꼬리 라고도 함)라는 한쪽 끝에서 삽입 되 고 기존 요소의 제거는 FRONT(또한 라는 다른 쪽 끝에서 수행) 머리라고 합니다). 배열은 각 요소에 직접 적으로 일정한 시간에 액세스할 수 있는 임의 액세스 데이터 구조입니다. 임의 액세스의 전형적인 그림은 책입니다 – 책의 각 페이지는 다른 사람과 독립적으로 열 수 있습니다. 임의 액세스는 이진 검색과 같은 많은 알고리즘에 매우 중요합니다. Queue2 예제 코드 // 저작권(c) 1996,1997 ObjectSpace, Inc. import com.objectspace.jgl.*; /** * 목록의 기본 시퀀스로 사용.

* @see com.objectspace.jgl.Queue * @version 3.0.0 * @author ObjectSpace, Inc. */ 공용 클래스 Queue2 { 공용 정적 보이드 main (String[] args) { // DList를 기본 데이터 구조로 사용합니다. 큐 큐 = 새 큐(새 DList() ); queue.push (“박쥐”); queue.push (“고양이”); queue.push (“개”); System.out.println(“대기열 인쇄”); System.out.println (대기열); } Stack과 마찬가지로 큐의 경우에도 새 요소가 추가될 위치와 요소가 제거될 위치를 정확히 알고 있으므로 이 두 작업에는 단일 단계가 필요합니다. 큐는 액세스 루틴과 결합된 데이터 구조로 구현되는 컴퓨터 프로그램에서 일반적이며, 추상 데이터 구조또는 클래스로 개체 지향 언어로 구현됩니다. 일반적인 구현은 순환 버퍼 및 연결된 목록입니다. Queue1 예제 코드 // 저작권(c) 1996,1997 ObjectSpace, Inc. import com.objectspace.jgl.*; 가져오기 자바.util.열거; /** * 건설, 열거, 밀기, 터지는. * @see com.objectspace.jgl.Queue * @version 3.0.0 * @author ObjectSpace, Inc.

*/ 공용 클래스 Queue1 { 공용 정적 보이드 main (String[] args) { // SList를 기본 데이터 구조로 사용합니다. 큐 큐 = 새 큐(); queue.push (“박쥐”); queue.push (“고양이”); queue.push (“개”); System.out.println(“대기열 인쇄”); System.out.println (대기열); System.out.println(); System.out.println(“비파괴적으로 큐열거”); 열거 e = queue.elements(); 동안 (e.hasMoreElements() ) System.out.println (e.nextElement() ); System.out.println(); System.out.println(“각 요소를 팝업 및 인쇄”) ; 동안 (!queue.isEmpty() system.out.println(queue.pop() ); } 순환 큐 구현은 분할의 나머지 부분을 취하여 계산되는 modulo 연산자(표시%)를 사용하여 수행됩니다(예: 8%5는 3).