본문 바로가기
자바과정/Java

Java 실습(스택&큐) - 7일차

by Parkej 2021. 2. 15.

스택과 큐를 추상클래스와 동적바인딩을 사용하여 작성

 

// push할 값을 담을 메모리

package dynamic;

public abstract class Memory {
	protected int[] arr;
	protected int cnt;
	
	public Memory() {
		arr = new int[5];
		cnt = 0;
	}
	
	public void push(int a) {
		arr[cnt++] = a;
	}
//	public abstract void empty(); 	 // 빈 배열 체크 구현
	public abstract int pop();

}



/// 스택
package dynamic;

public class MyStack extends Memory {
	@Override
	public int pop() {
		return arr[--cnt];
	}
	public void empty() {
		
	}
}



/// 큐
package dynamic;

public class MyQueue extends Memory{
	private int front;

	public MyQueue() {
		front = 0;
	}

	@Override
	public int pop() {
		return arr[front++];
	}
	public void empty() {
		
	}
}



/// 메인
package dynamic;
import java.util.Scanner;

public class DynamicMain {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		MyStack ms = new MyStack();
		MyQueue mq = new MyQueue();
		Memory mm = null;
		int a;
		while(true) {
			System.out.println("1. 스택 2. 큐 3. 종료");
			a = sc.nextInt();
			if(a==1) {mm = ms;}// 스택
			else if(a==2) {mm = mq;} // 큐
			else {break;}
			while(true) {
				System.out.print("1. push 2. pop 3. break : ");
				a = sc.nextInt();
				if(a==1) { // push
					System.out.print("push 값 입력 : ");
						mm.push(sc.nextInt());						
				}
				else if(a==2) {
					System.out.print("pop 값 : ");
						System.out.println(mm.pop());	
				}
				else {
					break;
				}
			}
		}
	}
}

스택 큐 구조 

 

반응형

'자바과정 > Java' 카테고리의 다른 글

Java 실습(어댑터) - 9일차  (0) 2021.02.17
Java 기초 - 8일차  (0) 2021.02.17
Java 기초 - 7일차  (0) 2021.02.15
Java 실습(상속클래스) - 6일차  (0) 2021.02.04
Java 실습(한사람 성적처리:과목수 입력) - 5일차  (0) 2021.02.04

댓글