선형 큐
함수
- create
- init
- is_full
- is_empty
- enqueue
- dequeue
- peek
queue의 front와 rear 포인터의 위치를 보면서(두 위치가 -1이면 init, 두 위치가 같으면 is_empty() 상태, rear가 인덱스 맨 뒤에 있으면 포화상태) 큐의 상태를 알 수 있다.
front, rear를 먼저 움직인 다음, 원소를 빼고 넣는다는 것을 기억하자!
구현코드
package queue;
class Queueinfo {
int front;
int rear;
int[] queue;
public void create(int max_size) {
this.queue= new int[max_size];
}
public void init() {
this.front=this.rear=-1;
}
public boolean is_empty() {
return front==rear;
}
public boolean is_full() {
return rear==this.queue.length-1;
}
public void enqueue(int item) {
if(is_full()) System.out.println("큐가 다 찼습니다");
else {
++this.rear;
this.queue[rear]=item;
System.out.println(this.rear+"에"+this.queue[this.rear]+"를 넣었습니다");
}
}
public int dequeue() {
if(is_empty()) {
System.out.println("큐에서 뺄게 없습니다");
return 0;
}
else {
System.out.println(++this.front+"에"+this.queue[this.front]+"를 뺐습니다");
return this.queue[this.front];
}
}
public void peek() {
if(is_empty()) {
System.out.println("볼 게 엄서요");
}
else {
front++;
System.out.println(this.queue[this.front--]);
}
}
}
public class linearqueue {
public static void main(String[] args) {
// TODO Auto-generated method stub
Queueinfo queue= new Queueinfo();
queue.create(3);
queue.init();
queue.enqueue(0);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.peek();
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.peek();
}
}
Author And Source
이 문제에 관하여(선형 큐), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bje5774/선형-큐저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)