문자 대기열용 인터페이스 생성
세 가지 구현 개발:
고정 크기 선형 대기열.
원형 큐(배열 공간 재사용).
동적 대기열(필요에 따라 증가)
1 ICharQ.java라는 파일을 생성합니다
// 문자 대기열 인터페이스.
공개 인터페이스 ICharQ {
// 대기열에 문자를 삽입합니다.
void put(char ch);
// 대기열에서 문자를 제거합니다.
char get();
}
2 IQDemo.java라는 파일을 생성합니다.
3 여기에 표시된 고정 대기열 클래스를 추가하여 IQDemo.java 만들기를 시작하세요.
4 아래 표시된 CircularQueue 클래스를 IQDemo.java에 추가합니다.
순환 대기열 작업: 요소를 제거할 때 배열에서 확보된 공간을 재사용합니다. 제거가 있는 한 요소를 무제한으로 저장할 수 있습니다.
경계 조건: 배열의 끝에 도달해도 대기열이 가득 차지 않지만, 제거되지 않은 항목을 새 항목으로 덮어쓰는 경우입니다.
put() 메서드는 대기열이 가득 찼는지 확인하기 위해 여러 조건을 확인해야 합니다.
대기열이 가득 찬 조건: 다음과 같은 경우 대기열이 가득 찼습니다. putloc이 getloc보다 작은 단위입니다. putloc은 배열의 끝에 있고 getloc은 처음에 있습니다.
빈 대기열 조건: getloc과 putloc이 동일하면 대기열이 비어 있습니다.
배열 크기: 기본 배열은 검사를 용이하게 하기 위해 대기열 크기보다 한 단위 더 크게 생성됩니다.
5 아래 표시된 DynQueue 클래스를 IQDemo.java에 삽입합니다. 공간이 부족할 때 크기를 확장하는 "확장 가능한" 대기열을 구현합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!