본문 바로가기
Algorism

[자료구조] 배열을 이용한 Stack구현

by 오늘의개발부 2020. 8. 24.
반응형
  • 스택은 상자에 데이터를 집어넣는 형태의 구조이다.
    데이터가 저장 될 때마다 위로 쌓이고, 데이터를 꺼낼 때는 가장 위에 있는 것만 꺼내오는 후입선출형(Last In First Out) 구조이다.
    스택의 맨 위에서만 데이터가 들어가고 나오기 때문에 이에 적합하 구조에서 사용하기 매우 간편하고 데이터에 접근하고 처리하는 속도도 빠르다.
public class MyStack {

    private int top;
    private int maxSize;
    private Object[] stack;

    public MyStack() {
        this.top = -1;
        this.maxSize = 5;
        this.stack = new Object[maxSize];
    }

    public MyStack(int maxSize) {
        this.top = -1;
        this.maxSize = maxSize;
        this.stack = new Object[maxSize];
    }

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

    public boolean isFull() {
        return top + 1 == maxSize;
    }

    public void push(Object item) {
        if(isFull()) {
            throw new ArrayIndexOutOfBoundsException(top);
        }
        stack[++top] = item;
    }

    public Object pop() {
        Object item = peek();
        top--;
        return item;
    }

    public Object peek() {
        if(isEmpty()) {
            throw new ArrayIndexOutOfBoundsException(top);
        }
        return stack[top];
    }

}
반응형

'Algorism' 카테고리의 다른 글

선택정렬(Selection sort)  (0) 2022.07.12
버블정렬(Bubble sort)  (0) 2022.07.12
[알고리즘] 이진탐색  (0) 2020.08.31
[알고리즘] 시간 복잡도  (0) 2020.08.13
[알고리즘] 공부할 것들  (0) 2020.08.13