상세 컨텐츠

본문 제목

Java Study 혼자 해보기 문제

개발생활/Java

by 한국인맛집 2021. 11. 7. 21:13

본문

반응형

자바를 이용하여 아래를 구현하세요.

 

(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' 카테고리의 다른 글

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

관련글 더보기