티스토리 뷰

Data Structure & Algorithm

[Java] Queue

Alledy 2019. 5. 27. 23:08

Queue

public class Queue {

    private int maxSize;
    private long[] queArray;
    private int front; // 큐의 첫번째 인덱스(포인터 역할)
    private int rear; // 큐의 마지막 인덱스
    private int nItems; // 전체 길이

    public Queue(int size) {
        this.maxSize = size;
        this.queArray = new long[size];
        front = 0;
        rear = -1;
        nItems = 0;
    }

    public void insert(long j) {
        if(rear == maxSize -1) {
            rear = -1; // 다시 앞에서부터 덮어씌움. Circular Queue
        }
        rear++;
        queArray[rear] = j;
        nItems++;
    }

    public long remove() {
        long temp = queArray[front];
        front++;
        nItems--;
        if(front == maxSize) {
            front = 0;
        }
        return temp;
    }

    public long peakFront() {
        return queArray[front];
    }

    public boolean isEmpty() {
        return nItems == 0;
    }

    public boolean isFull() {
        return nItems == maxSize;
    }

    public void view() {
        System.out.print("[ ");
        for(int i = 0 ; i < queArray.length ; i++) {
            System.out.print(queArray[i] + " ");
        }
        System.out.print(" ]");
    }
}

public class App {
    public static void main(String[] args) {
        Queue myQueue = new Queue(5);
        myQueue.insert(100);
        myQueue.insert(200);
        myQueue.insert(300);
        myQueue.insert(400);
        myQueue.insert(500);
        myQueue.insert(600); // 0번째 인덱스가 100에서 600으로 덮어씌워짐.
        myQueue.view();
    }
}

 

'Data Structure & Algorithm' 카테고리의 다른 글

[JS] 가장 먼 노드(그래프 탐색)  (0) 2019.07.02
[Java] LinkedList  (0) 2019.05.31
[Java] Stack, reverseString  (0) 2019.05.27
자바_셀프넘버  (0) 2019.05.15
자바_빠른 A+B  (0) 2019.05.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함