반응형
- Queue(큐)
Queue 자료구조는 위 그림 처럼 Front(앞쪽), Rear(뒷쪽) 이 모두 뚫려있는 모양이고 Rear로 값이 들어오고 Front로 나가는것을 기본적인 Queue의 자료구조이다. 그렇기 때문에 가장 먼저 들어온 값이 가장 먼저 나가는 FIFO (First In First Out) 구조이다.
다음 코드는 Queue 구조를 배열을 이용하여 구현한 것이다.
public class TestQueue {
protected Object[] data;
protected int dataLength = -1;
protected int point = -1;
protected int index = -1;
protected int size;
public TestQueue (int size) {
this.size = size;
data = new Object[size];
}
public void push (Object value) {
if (fullCheck()) {
++dataLength;
data[++index] = value;
} else {
System.out.println("full queue");
}
}
public Object peek() {
--dataLength;
Object returnData = data[++point];
data[point] = null;
if (index == (size - 1)) {
index = -1;
}
if (point == (size - 1)) {
point = -1;
}
if (nullCheck()) {
point = -1;
index = -1;
}
return returnData;
}
public boolean fullCheck () {
return dataLength == size - 1 ? false : true;
}
public boolean nullCheck () {
return index == point ? true : false;
}
public static void main(String[] args) {
TestQueue tq = new TestQueue(3);
tq.push(11);
tq.push(22);
tq.push(33);
System.out.println(tq.peek());
System.out.println(tq.peek());
tq.push(44);
System.out.println(tq.peek());
tq.push(55);
tq.push(66);
System.out.println(tq.peek());
System.out.println(tq.peek());
tq.push(77);
tq.push(88);
tq.push(99);
tq.push(100);
System.out.println(tq.peek());
System.out.println(tq.peek());
System.out.println(tq.peek());
System.out.println(tq.peek());
ArrayList<Character> aa = new ArrayList<Character>();
aa.add('c');
}
}
반응형
'Tech > Java' 카테고리의 다른 글
싱글톤 패턴(Singleton Pattern) (0) | 2020.06.02 |
---|---|
Java 자료구조 - List, Set, Map (1) | 2020.05.30 |
Java 자료구조 - Stack (0) | 2020.05.25 |
Java 기본 자료형 실수 표현 방법 (float, double) - 부동 소수점 (0) | 2020.05.25 |
Java 참조 자료형(클래스, 인터페이스, 배역, 열겨 타입) (0) | 2020.05.23 |
댓글