Stack์ด๋?
LIFO(Last in First Out, ํ์ ์ ์ถ), ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ํ๊ณณ์ผ๋ก ์ ํ๋๋ ์๋ฃ๊ตฌ์กฐ
Stack ์์
- ์ผ๋ฐ์ ์ธ ํจ์์ ์ฝ์คํ, ์คํ์ด ๋์น๊ฒ ๋๋ฉด StackOverFlow๊ฐ ๋ฐ์ํ๋ค.
- ๋ฌธ์์ด ์ญ์ ์ถ๋ ฅ, ์ฐ์ฐ์ ํ์ํ๊ธฐ๋ฒ๊ณผ ๊ฐ์ ์ํฉ์์ ์ฌ์ฉํ๋ค.
์ฝ๋๋ก ์ดํดํ๋ Stack
class Stack {
List<Integer> list = new ArrayList<>();
private final int STACK_MAX_SIZE;
private int top = 0;
public Stack(int STACK_MAX_SIZE) {
this.STACK_MAX_SIZE = STACK_MAX_SIZE;
}
void push(int data) {
if(isFull()) return ;
list.add(top, data);
top += 1;
}
void pop() {
if(isEmpty()) return;
top -= 1;
list.remove(top);
}
boolean isEmpty() {
return list.size() == 0;
}
boolean isFull() {
return list.size() == STACK_MAX_SIZE;
}
}