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 |