자바 배열 시 뮬 레이 션 우선 순위 대기 열 데이터 구조의 인 스 턴 스
자바 배열 시 뮬 레이 션 대기 열 은 표 의 전단 에서 만 삭제 작업 을 할 수 있 고 표 의 백 엔 드 에 만 삽입 작업 을 할 수 있 는 특수 한 선형 표 입 니 다.삽입 작업 을 하 는 끝 을 팀 꼬리 라 고 하고 삭제 작업 을 하 는 끝 을 팀 머리 라 고 합 니 다.이것 이 바로 우리 가 평소에 자주 사용 하 는 선진 선 출 원칙 (FIFO) 이다.자바 의 List 는 대기 열 로 사용 할 수 있 으 며, 대기 열 끝 에 요 소 를 추가 하면 list. add 방법 을 사용 하고, 대기 열 머리 에서 요 소 를 삭제 하면 list. remove 방법 을 사용 합 니 다.
자바 배열 시 뮬 레이 션 우선 순위 대기 열 구조 인 스 턴 스:
package datastruct;
import java.util.Arrays;
import java.util.Comparator;
/**
* 、
* TreeSet、TreeMap
*/
public class SimulatePriorityQueue {
public static void main(String[] args) {
SimulatePriorityQueue queue = new SimulatePriorityQueue(4);
// SimulateQueue queue = new SimulateQueue();
// System.out.println(" :" + queue.remove());
queue.insert(1);
queue.insert(3);
queue.insert(2);
queue.insert(5);
queue.insert(4);
System.out.println("size:" + queue.size());
System.out.println("peek:" + queue.peek());
System.out.println(" :" + queue.remove());
System.out.println(" :" + queue.remove());
System.out.println(" :" + queue.remove());
System.out.println(" :" + queue.remove());
// System.out.println(" :" + queue.remove());
System.out.println("size:" + queue.size());
System.out.println();
}
private int mSize = 3; //
private int[] mArray; //
private int mNextItem; // ,
public SimulatePriorityQueue() {
mArray = new int[mSize];
mNextItem = 0;
}
public SimulatePriorityQueue(int size) {
this.mSize = size;
mArray = new int[mSize];
mNextItem = 0;
}
/**
*
* @param item
*/
public void insert(int item) {
if (!isFull()) {
mArray[mNextItem++] = item;
for (int i = 0; i < mNextItem; i++) {//
for (int j = 0; j < mNextItem - 1; j++) {
if (mArray[j] > mArray[j + 1]) {
mArray[j] = mArray[j + 1] + 0 * (mArray[j + 1] = mArray[j]);
System.out.println(Arrays.toString(mArray));
}
}
}
System.out.println(Arrays.toString(mArray));
} else {
System.out.println("---- , ----");
}
}
/**
*
* @return
*/
public int remove() {
if (!isEmpty()) {
return mArray[--mNextItem];
} else {
throw new IllegalArgumentException(" ");
}
}
/**
*
* @return
*/
public int peek() {
return mArray[mNextItem - 1];
}
/**
*
* @return
*/
public boolean isEmpty() {
return mNextItem == 0;
}
/**
*
* @return
*/
public boolean isFull() {
return mNextItem == mSize;
}
/**
* size
* @return
*/
public int size() {
return mNextItem;
}
}
출력 결과:
[1, 0, 0, 0]
[1, 3, 0, 0]
[1, 2, 3, 0]
[1, 2, 3, 0]
[1, 2, 3, 5]
---- , ----
size:4
peek:5
:5
:3
:2
:1
size:0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.