728x90
stack 클래스
import java.util.Arrays;
public class SuperStack {
int[] arr = new int[10];
int cnt = 0;
String result;
public void push(int num) { // 요소 저장
arr[cnt] = num;
cnt++;
}
public int peek() { // 마지막 요소 반환
int num = arr[cnt-1]; // cnt는 마지막 저장한 요소의 다음 번호이므로 -1
return num;
}
public int pop() {
int num = arr[cnt-1];
cnt--; // 이후 요소를 저장할 때 삭제할 요소에 저장하도록 지정
return num;
}
@Override
public String toString() {
result = "";
for(int i = 0; i < cnt; i++) {
result += arr[i] + " ";
}
return result;
}
}
queue 클래스
public class SuperQueue {
int[] arr = new int[10];
int cnt = 0;
String result;
public void offer(int num) { // 요소 저장
arr[cnt] = num;
cnt++;
}
public int peek() { // 첫번째 요소 반환
int num = arr[0];
return num;
}
public int poll() {
int num = arr[0];
for(int i = 0; i < cnt; i++) {
arr[i] = arr[i+1]; // 첫번째 요소를 없애기 위해 다음 요소를 이전 요소에 저장
}
cnt--; // 이후 요소를 저장할 때 현재 마지막 요소에 저장하도록 지정
return num;
}
@Override
public String toString() {
result = "";
for(int i = 0; i < cnt; i++) {
result += arr[i] + " ";
}
return result;
}
}
public class Homework1 {
public static void main(String[] args) {
SuperStack stack = new SuperStack();
SuperQueue queue = new SuperQueue();
// 스택의 데이터 삽입
stack.push(1);
stack.push(5);
stack.push(7);
stack.push(10);
stack.push(11);
System.out.println(stack);
// 마지막 데이터 반환
System.out.println(stack.peek());
// 스택의 데이터 반환 후 삭제
System.out.println(stack.pop());
System.out.println(stack);
System.out.println("---------------------");
// 큐의 데이터 삽입
queue.offer(23);
queue.offer(28);
queue.offer(0);
queue.offer(15);
System.out.println(queue);
// 큐의 첫번째 데이터 반환
System.out.println(queue.peek());
// 큐의 첫번째 데이터 반환 후 삭제
System.out.println(queue.poll());
System.out.println(queue);
}
}
728x90
'Java' 카테고리의 다른 글
[Java] 예외 처리(Exception) (0) | 2022.04.18 |
---|---|
[Java] 예제3 (학생 관리 프로그램) (0) | 2022.04.17 |
[Java] 예제1 - 영어 단어장 (0) | 2022.04.17 |
[Java] 컬렉션 프레임워크 (0) | 2022.04.17 |
[Java] 인터페이스(interface) (0) | 2022.04.14 |