본문 바로가기

Java/문제

큐 구현하기

public class Queue {
// 필드
int[] area;
int input; // 집어넣을 위치를 지정
int output; // 삭제할 위치를 지정
int length; // 저장된 데이터의 개수

// 생성자
Queue(){
area = new int[5];
input = 0;
output = 0;
length = 0;
}

// 메소드
public void add(int data) {
if(length == area.length) {
System.out.println("큐가 가득 찼습니다.");
return;
}else {
area[input] = data; // 데이터를 저장
input = (++input)%5; // input값이 5가 되면 0으로 만들어 준다.
length++; // 데이터의 개수를 1증가시킨다.
}

}//end method add

public int remove() {
if(empty()) {
System.out.println("큐가 비어 있습니다.");
return 0;
}else {
int r = area[output]; // 출력할 값
output = (++output)%5; // 5가 되면 0으로 만들어 준다.
length--; //데이터의 개수를 1 줄인다. 
return r;
}

}//end method remove

public boolean empty() {
if(length == 0) {
return true;
}else {
return false;
}
}// end method empty

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Queue q = new Queue();
int response = 0;
while(true) {
System.out.println("1.삽입     2.삭제    3.종료");
response = sc.nextInt();

switch(response) {
case 1:
q.add(sc.nextInt());
break;
case 2:
if(q.empty()) {
q.remove();
}else {
System.out.println("값 : " + q.remove());
}
break;
default :
return;
}
}
}

}// end class Queue

'Java > 문제' 카테고리의 다른 글

[알고리즘]정렬  (0) 2019.06.19
[자료구조]힙  (0) 2019.06.19
여러 쓰레드에서 하나의 변수에 차례로 접근하  (0) 2019.06.12
List 구현(Java)  (0) 2019.06.11
[Java] 별출력하기  (0) 2019.06.10