๐ํ(Queue) ๋?
์ ์
์ ์ถ('FIFO') ๋ฐฉ์์ผ๋ก ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋๊ฐ๋ค
๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๋ ์ฐ์ฐ๊ณผ ์ญ์ ํ๋ ์ฐ์ฐ์ด ์์ชฝ์์ ์งํ๋๋ค.
๐ํ ๊ตฌํ ๋ฉ์๋
๋ฐฐ์ด์ ์ด์ฉํด์ ์ซ์๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ฅํ ์ ์๊ฒ ๋ณ์ ์์ฑ
๋ฐฐ์ด์ ์ง์ ์ ๊ทผํด์ ์ซ์๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ์ ์ด์๋ก ์ ์ด
front ๋ณ์ : ๋งจ ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋์ ์ ์ฅ๋๊ฑด์ง ๊ฐ๋ฆฌํด
rear ๋ณ์ : ๋ค์ ๋ฐ์ดํฐ๊ฐ ์ด๋์ ์ ์ฅ๋ ๊ฑด์ง ๊ฐ๋ฆฌํด
num ๋ณ์ : ํ์ฌ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์๋ฅผ ์ ์ฅํจ
๐พ ์์ฑ์
ํฌ๊ธฐ๋ฅผ ์ ๋ฌ๋ฐ์์ ํด๋น ํฌ๊ธฐ๋งํผ ์ ์๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฐฐ์ด ์์ฑ
front ๋ฐ rear๋ 0 ์ ์ ์ฅ
๐พ isEmpty; ํ๊ฐ ๋น์ด์๋์ง ๊ฒ์ฌ
num๊ฐ 0์ด๋ฉด true ๋ฐํ
๊ทธ๋ ์ง ์์ผ๋ฉด false ๋ฐํ
๐พ isFull; ํ๊ฐ ๊ฐ๋ ์ฐจ์๋์ง ๊ฒ์ฌ
๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ num๋ ๊ฐ์ผ๋ฉด true ๋ฐํ
๊ทธ๋ ์ง ์์ผ๋ฉด false ๋ฐํ
๐พ enQueue; ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฐ์ฐ
์ ์ฅํ ์ซ์๋ฅผ ํ๋ ์ ๋ฌ๋ฐ๊ณ
ํ๊ฐ ๊ฐ๋ ์ฐผ์ผ๋ฉด ๊ฐ๋์ฐผ๋ค๊ณ ์ถ๋ ฅ
๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ฌ rear์ ์์น์ ๋ฐฐ์ด์ ์ ๋ฌ๋ฐ์ ์ซ์๋ฅผ ์ ์ฅํ๊ณ rear 1์ฆ๊ฐ ํ num 1 ์ฆ๊ฐ
๐พ deQueue; ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ์ฐ์ฐ
ํ๊ฐ ๋น์ด์์ผ๋ฉด ๋น์ด์์ ์ด๋ผ๊ณ ์ถ๋ ฅ
๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ฌ front์ ์์น์ ๋ฐฐ์ด์ ๊ฐ์ ๊บผ๋ด๊ณ front 1์ฆ๊ฐ ํ num 1 ๊ฐ์
๐พ display
ํ์ ์ ์ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ
๐๊ตฌํ ์ฝ๋
package stack;
public class Queue {
private int front = 0;
private int rear = 0;
private int num = 0;
private Integer[] queue;
public Queue(int size) {
this.size = size;
queue = new Integer[size];
}
int size;
public boolean isEmpty(){
if(num == 0) return true;
else return false;
}
public boolean isFull(){
if(num == size) return true;
else return false;
}
public void enQueue(int x){
if(isFull()) System.out.println("ํ๊ฐ ๊ฐ๋ ์ฐธ");
else {
queue[rear%size] = x;
rear= (rear+1)%size;
num++;
}
}
public void deQueue(){
if(isEmpty()) System.out.println("ํ๊ฐ ๋น์ด ์์");
else {
System.out.println(queue[front]);
queue[front] = null;
front++;
num--;
}
}
void display(){
for (int i = 0; i < size; i++) {
System.out.print("[" + queue[i] + "] ");
}
System.out.println();
}
}
'โก๐ฉโ๐ป โก > ยบ Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] ๋ฆฌ์คํธ (List) ๊ตฌํ (Java) (0) | 2023.12.05 |
---|---|
[Java] ์ฌ๊ท | ํ๋ ธ์ด ํ (0) | 2023.12.04 |
[Java] ์ฌ๊ท | ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ(์ต๋ ๊ณต์ฝ์ ๊ตฌํ๊ธฐ) (0) | 2023.12.04 |
[์๋ฃ๊ตฌ์กฐ] ์คํ (Stack) ๊ตฌ์กฐ (Java) (3) | 2023.12.04 |
[Java] JSP, JDBC ์ค์ต 2 (0) | 2023.11.30 |