반응형
- 스택은 상자에 데이터를 집어넣는 형태의 구조이다.
데이터가 저장 될 때마다 위로 쌓이고, 데이터를 꺼낼 때는 가장 위에 있는 것만 꺼내오는 후입선출형(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 |