1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
package pack02;
import java.util.Scanner;
abstract class Memory{
int i;
int []arr;
Memory(){
arr = new int[20];
i=0;
}
void push() {
if(i>19) {
System.out.println("더 이상 입력 할 수 없습니다.");
}else if(i<19) {
System.out.println("입력 하세요.");
arr[i] = new Scanner(System.in).nextInt();
i++;
}
}
abstract void pop();
}
class Stack extends Memory{
@Override
void pop() {
if(i==0) {
System.out.println("더 이상 값이 없습니다.");
}else {
System.out.println(arr[--i]);
}
}
}
class Queue extends Memory{
@Override
void pop() {
if(i==0) {
System.out.println("더 이상 값이 없습니다.");
}else {
System.out.println(arr[0]);
for (int j = 0; j < i-1; j++) {
arr[j] = arr[j+1];
}i--;
}
}
}
public class DynamicBinding {
public static void main(String[] args) {
Memory memory;
Stack stack = new Stack();
Queue queue = new Queue();
while(true) {
System.out.println("1.Stack 2.Queue 3.End");
int num = new Scanner(System.in).nextInt();
switch(num) {
case 1 :
memory = stack;
System.out.println("생성할 메모리 : ");
int n1 = new Scanner(System.in).nextInt();
for (int i = 0; i < n1; i++) {
memory.push();
}
for (int i = 0; i < n1; i++) {
memory.pop();
}
break;
case 2 :
memory = queue;
System.out.println("생성할 메모리 : ");
int n2 = new Scanner(System.in).nextInt();
for (int i = 0; i < n2; i++) {
memory.push();
}
for (int i = 0; i < n2; i++) {
memory.pop();
}
break;
case 3:
System.out.println("종료");
return;
}
}
}
}
|
cs |
'Programming > [JAVA]' 카테고리의 다른 글
[JAVA] ArithmeticsException (0) | 2018.03.23 |
---|---|
[JAVA] instance of에 대하여 (0) | 2018.03.23 |
[JAVA, 자바]Wrapper Class (래퍼 클래스) (0) | 2018.03.21 |
[JAVA, 자바] 성적 처리 프로그램(toString 이용) (0) | 2018.03.21 |
[JAVA, 자바] 성적 처리 프로그램 (0) | 2018.03.21 |