자바를 이용하여 아래를 구현하세요.
(1) 스택을 구현하세요.
- 프로그램을 최초로 실행하면 스택의 사이즈를 사용자키보드로 입력받아 스택의 사이즈를 결정합니다.
- 프로그램 실행 메뉴는 다음과 같이 진행되야합니다.
- 스택이 가득찬경우 데이터 추가할수 없어야 합니다.
- 스택이 비었을 경우 데이터를 가져올수 없어야합니다.
* 프로그램이 실행되면 나오는 메뉴
1. 데이터 추가
2. 데이터 가져오기
3. 프로그램 종료
* 메뉴 설명
- 1. 데이터를 입력합니다. 데이터는 가장 마지막에 추가되야합니다.
- 2. 데이터를 가져옵니다. 데이터는 가장 마지막에 입력된 데이터를 가져옵니다. 그리고 스택의 데이터는 삭제되야합니다.
-3. 프로그램종료(3번)을 입력하면 프로그램이 종료됩니다.
답.
Mystack.java
package kr.pe.hd.stack;
public class MyStack {
private int[] stackArray;
int top = -1;
public MyStack(int size){
stackArray = new int[size];
top = -1;
}
public void Push(int value) {
++top;
stackArray[top] = value;
}
public int Pop() {
return stackArray[top--];
}
public boolean IsStackFull() {
if(top >= stackArray.length-1) return true;
return false;
}
public boolean IsStackEmpty() {
if(top < 0) return true;
return false;
}
}
Main.java
package kr.pe.hd.stack;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Stack 사이즈를 입력해주세요.");
Scanner s = new Scanner(System.in);
try {
int a = s.nextInt();
if(a <= 0) throw new Exception();
MyStack mystack = new MyStack(a);
s.nextLine();
while(true){
System.out.println("1. 데이터 입력");
System.out.println("2. 데이터 가져오기");
System.out.println("3. 프로그램 종료");
int input = s.nextInt();
s.nextLine();
if(input == 3) break;
else if(input == 1) {
if(mystack.IsStackFull()) {
System.out.println("스택이 가득찼습니다.");
continue;
}
int data = s.nextInt();
s.nextLine();
mystack.Push(data);
}
else if(input == 2) {
if(mystack.IsStackEmpty()) {
System.out.println("스택이 비어 있습니다.");
continue;
}
System.out.println(mystack.Pop());
}
else {
System.out.println(" 잘못 입 력 했 습 니 다.");
continue;
}
}
}
catch(Exception e) {
System.out.println("Erro Stack Size");
}
}
}
(2) 큐를 구현하세요.
- 프로그램을 최초로 실행하면 큐의 사이즈를 사용자키보드로 입력받아 스택의 사이즈를 결정합니다.
(큐는 원형큐가 아니고 일반적인 큐입니다)
- 프로그램 실행 메뉴는 다음과 같이 진행되야합니다.
- 큐이 가득찬경우 데이터 추가할수 없어야 합니다.
- 큐이 비었을 경우 데이터를 가져올수 없어야합니다.
- 큐의 인덱스는 Front와 tail로 사용합니다.
- front와 tail의 인덱스가 같으면 큐가 비었다고 합니다.
- front가 큐의 사이즈와 같으면 큐가 가득찬것으로 합니다.
* 프로그램이 실행되면 나오는 메뉴
1. 데이터 추가
2. 데이터 가져오기
3. 프로그램 종료
* 메뉴 설명
- 1. 데이터를 입력합니다. 데이터는 front인덱스 위치에 추가되어야 합니다.
- 2. 데이터를 가져옵니다. 데이터는 end인덱스에 입력된 데이터를 가져옵니다.
- 3. 프로그램종료(3번)을 입력하면 프로그램이 종료됩니다.
Java Study - Generic & Exception (0) | 2021.11.01 |
---|---|
Java Interface / 추상클래스 - Class 5 (0) | 2021.10.19 |
Java Inheritance class -4 (0) | 2021.10.11 |
Java I/O , class -3 (0) | 2021.09.26 |
Java Variable, Loop, Flow Control -2 (0) | 2021.08.29 |
Java 개발환경 설정-1 (0) | 2021.08.29 |