새소식

인기 검색어

비트교육_단기과정

큐 스택 (정적, 동적 바인딩)

  • -

1. Memory 클래스

package week_2;
 
public abstract class Memory {
 
    protected int[] values;
    protected int startIndex;
 
    public Memory() {
        values = new int[5];
    }
 
    public void push(int i) {
        if (startIndex < values.length) {
            values[startIndex++= i;
        } else {
            System.out.println("여유공간이 없습니다");
        }
    };
 
    public abstract int pop();
 
}
 
cs

2. Queue 클래스

package week_2;
 
public class MyQueue extends Memory {
 
    @Override
    public int pop() {
        if (startIndex > 0) {
            int value = values[0];
            for (int i = 0; i < values.length - 1; i++) {
                values[i] = values[i + 1];
            }
            startIndex--;
            return value;
        } else
            return -1;
 
    }
}
 
cs

3.Stack 클래스

package week_2;
 
public class MyStack extends Memory {
 
    @Override
    public int pop() {
        if (startIndex > 0) {
            return values[--startIndex];
        }
        return -1;
    }
}
 
cs

4.동적바인딩

package week_2;
 
import java.util.Scanner;
 
public class MemoryExe {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Memory que = new MyQueue();
        Memory stack = new MyStack();
 
        while (true) {
 
            System.out.print("1. 스택   2. 큐   => ");
            switch (sc.nextInt()) {
            case 1:
                mainExe(stack, sc);
                break;
            case 2:
                mainExe(que, sc);
                break;
            default:
                System.out.println("형식에 맞지않습니다");
                break;
            }
        }
    }
 
    public static void mainExe(Memory mr, Scanner sc) {
        System.out.print("1. push   2. pop   => ");
        int value = sc.nextInt();
        switch (value) {
        case 1:
            System.out.print("값을 입력하시오 : ");
            mr.push(sc.nextInt());
            break;
        case 2:
            int opt = mr.pop();
            if (!(opt == -1)) {
                System.out.println("출력값 : " + opt);
            } else {
                System.out.println("값이 존재하지 않습니다");
            }
            break;
        default:
            break;
        }
    }
}
 
cs

5. 정적바인딩

package week_2;
 
import java.util.Scanner;
 
public class MemoryExe {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        MyQueue que = new MyQueue();
        MyStack stack = new MyStack();
 
        while (true) {
 
            System.out.print("1. 스택   2. 큐   => ");
            switch (sc.nextInt()) {
            case 1:
                System.out.print("1. push   2. pop   => ");
                int value = sc.nextInt();
                switch (value) {
                case 1:
                    System.out.print("값을 입력하시오 : ");
                    stack.push(sc.nextInt());
                    break;
                case 2:
                    int opt = stack.pop();
                    if (!(opt == -1)) {
                        System.out.println("출력값 : " + opt);
                    } else {
                        System.out.println("값이 존재하지 않습니다");
                    }
                    break;
                default:
                    break;
                }
                break;
            case 2:
                System.out.print("1. push   2. pop   => ");
                int value01 = sc.nextInt();
                switch (value01) {
                case 1:
                    System.out.print("값을 입력하시오 : ");
                    que.push(sc.nextInt());
                    break;
                case 2:
                    int opt = que.pop();
                    if (!(opt == -1)) {
                        System.out.println("출력값 : " + opt);
                    } else {
                        System.out.println("값이 존재하지 않습니다");
                    }
                    break;
                default:
                    System.out.println("형식에 맞지않습니다");
                    break;
                }
                break;
            default:
                System.out.println("형식에 맞지않습니다");
                break;
            }
 
        }
    }
 
}
 
cs
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.