> Java > java지도 시간 > 대기열 인터페이스 생성

대기열 인터페이스 생성

Patricia Arquette
풀어 주다: 2024-10-02 06:23:30
원래의
331명이 탐색했습니다.
  • 문자 대기열용 인터페이스 생성

  • 세 가지 구현 개발:

  • 고정 크기 선형 대기열.

  • 원형 큐(배열 공간 재사용).

  • 동적 대기열(필요에 따라 증가)

1 ICharQ.java라는 파일을 생성합니다
// 문자 대기열 인터페이스.
공개 인터페이스 ICharQ {
// 대기열에 문자를 삽입합니다.
void put(char ch);
// 대기열에서 문자를 제거합니다.
char get();
}

2 IQDemo.java라는 파일을 생성합니다.

3 여기에 표시된 고정 대기열 클래스를 추가하여 IQDemo.java 만들기를 시작하세요.

Crie uma interface Queue

4 아래 표시된 CircularQueue 클래스를 IQDemo.java에 추가합니다.

Crie uma interface Queue

  • 순환 대기열 작업: 요소를 제거할 때 배열에서 확보된 공간을 재사용합니다. 제거가 있는 한 요소를 무제한으로 저장할 수 있습니다.

  • 경계 조건: 배열의 끝에 도달해도 대기열이 가득 차지 않지만, 제거되지 않은 항목을 새 항목으로 덮어쓰는 경우입니다.
    put() 메서드는 대기열이 가득 찼는지 확인하기 위해 여러 조건을 확인해야 합니다.

  • 대기열이 가득 찬 조건: 다음과 같은 경우 대기열이 가득 찼습니다. putloc이 getloc보다 작은 단위입니다. putloc은 배열의 끝에 있고 getloc은 처음에 있습니다.

  • 빈 대기열 조건: getloc과 putloc이 동일하면 대기열이 비어 있습니다.

  • 배열 크기: 기본 배열은 검사를 용이하게 하기 위해 대기열 크기보다 한 단위 더 크게 생성됩니다.

5 아래 표시된 DynQueue 클래스를 IQDemo.java에 삽입합니다. 공간이 부족할 때 크기를 확장하는 "확장 가능한" 대기열을 구현합니다.

Crie uma interface Queue

  • 이 대기열 구현에서는 대기열이 가득 찼을 때 다른 요소를 저장하려고 시도하면 새로운 기본 배열이 두 배로 커집니다. 원본이 할당되고 대기열의 현재 내용이 이 배열에 복사되며 새 배열에 대한 참조가 q에 저장됩니다.

6 ICharQ의 세 가지 구현을 보여주기 위해 다음 클래스를 IQDemo.java에 삽입합니다. ICharQ 참조를 사용하여 모든 대기열에 액세스합니다.

클래스 IQDemo {
공개 정적 무효 메인(문자열 인수[]) {
고정 대기열 q1 = 새 고정 대기열(10);
DynQueue q2 = 새로운 DynQueue(5);
CircularQueue q3 = new CircularQueue(10);
ICharQ iQ;
char ch;
저는요;
iQ = q1;
// 고정 대기열에 일부 문자를 삽입합니다.
for(i=0; i iQ.put((char) ('A' i));
// 대기열을 표시합니다.
System.out.print("고정 대기열의 내용: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q2;
// 동적 대기열에 일부 문자를 삽입합니다.
for(i=0; i iQ.put((char) ('Z' - i));
// 대기열을 표시합니다.
System.out.print("동적 대기열의 내용: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q3;
// 순환 대기열에 일부 문자를 삽입합니다.
for(i=0; i iQ.put((char) ('A' i));
// 대기열을 표시합니다.
System.out.print("순환 대기열의 내용: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
// 순환 대기열에 더 많은 문자를 삽입합니다.
for(i=10; i iQ.put((char) ('A' i));
// 대기열을 표시합니다.
System.out.print("순환 대기열의 내용: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println("n저장 및 사용"
" 순환 대기열.");
// 순환 대기열의 항목을 저장하고 소비합니다.
for(i=0; i iQ.put((char) ('A' i));
ch = iQ.get();
System.out.print(ch);
}
}
}

7 DynQueue의 순환 버전을 만듭니다. 대기열을 연결하는 ICharQ에 재설정() 메서드를 추가합니다. 한 대기열 유형의 내용을 다른 대기열 유형으로 복사하는 정적 메서드를 만듭니다.

위 내용은 대기열 인터페이스 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿