데이터 구조: 배열 이 링 대기 열 을 실현 합 니 다.
package day2020_0621;
import java.util.Scanner;
public class CricleArrayQueueDemo {
public static void main(String[] args) {
//
System.out.println(" ");
//
CircleArray arrayQueue = new CircleArray(4);
char key = ' ';//
Scanner scanner = new Scanner(System.in);//
boolean loop = true;
//
while (loop) {
System.out.println("s(show): ");
System.out.println("e(show): ");
System.out.println("a(show): ");
System.out.println("g(show): ");
System.out.println("h(show): ");
key = scanner.next().charAt(0);//
switch (key) {
case 's':
arrayQueue.showQueue();
break;
case 'a':
System.out.println(" ");
int val = scanner.nextInt();
arrayQueue.addQueue(val);
break;
case 'g'://
try {
int res = arrayQueue.getQueue();
System.out.printf(" %d
", res);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
break;
case 'h':
try {
int res = arrayQueue.headQueue();
System.out.printf(" %d
", res);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
break;
case 'e'://
scanner.close();
loop = false;
break;
default:
break;
}
}
System.out.println(" ");
}
}
class CircleArray{
private int maxSize;//
private int front;// ,
private int rear ;// 。
private int[] arr;//
public CircleArray(int maxSize) {
this.maxSize = maxSize;
arr = new int[maxSize];
}
//
public boolean isFull() {
return front == (rear +1)%maxSize;
}
//
public boolean isEmpty() {
return rear == front;
}
//
public void addQueue(int n) {
if(isFull()) {
System.out.println(" , ");
return;
}
//
arr[rear] = n;
// rear ,
rear = (rear+1) % maxSize;
}
// ,
public int getQueue() {
//
if(isEmpty()) {
//
throw new RuntimeException(" ");//
}
// front
//1. front
//2、 front ,
//3、
int val = arr[front];
front = (front + 1)%maxSize;
return val;
}
//
public void showQueue() {
if(isEmpty()) {
System.out.println(" ");
return;
}
// : front ,
for(int i = front ; i < front + size(); i++) {
System.out.printf("arr[%d] = %d
",i%maxSize,arr[i%maxSize]);
}
}
//
public int size() {
return (rear +maxSize -front)%maxSize;
}
// ,
public int headQueue() {
//
if(isEmpty()) {
throw new RuntimeException(" ");
}
return arr[front];
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.