자바 자료구조 - 스택(배열로 구현하는 Stack)

스택 :  먼저들어온 데이터가 가장 나중에 빠져나가는 구조

 

 

자바에서 제공하는 스택 클래스로도 구현가능하다

 

Stack<Integer> stackInt = new Stack<>(); 자바에서 제공하는 스택

 

 

 

배열로 구현

 

class Java_Stack {

    private int[] arr;
    private int size;
    private int top;
    private int cap;

    public Java_Stack(int size) {
        this.size = size;
        this.cap = size;
        this.top = -1;
        this.arr= new int[size];
    }

    public void push(int x) {

        if (isFull()) {
            System.out.println("overflow");
            System.exit(-1); //종료함수
        }

        System.out.println("넣음" + x);
        top++;
        arr[top] = x;
    }

    public void pop() {
        if(isEmpty()) {
            System.out.println("EMPTY");
            System.exit(-1);
        }

        System.out.println("뺌");
        arr[top] = 0;
        top--;
    }

    public int peek() {
            if (!isEmpty()) {
                return arr[top];
            }
            else {
                System.exit(-1);
            }

            return -1;
        }
    public boolean isFull() {
        return  top == cap -1;
    }
    public boolean isEmpty() {
        return top == -1;
    }

    public String toString() {
        System.out.println(Arrays.toString(arr));
        return arr.toString();
    }
}

+ Recent posts