성장 일기/알고리즘
[JAVA] Stack(스택)
자이오니
2021. 4. 4. 23:10
스택(stack) : 쌓아놓은 더미 / 쌓아 올리듯 데이터를 쌓는 자료 구조.
* stack의 특징
후입선출(LIFO: Last-In First-Out) : 가장 최근에 들어온 데이터가 가장 먼저 나감
스택의 연산
1. push(a) : 데이터 추가
2. pop() : 데이터 삭제
3. peek() : 스택 상단에 있는 값을 삭제하지 않고 반환
4. isEmpty() : 스택이 비었는지 확인 (비었으면 true)
5. contains(a) : 스택에 a가 있는지 확인 (있으면 true)
<STACK 사용법>
1
2
3
4
5
6
7
8
9
10
11
12
|
//Stack<Element> st = new Stack<>();
Stack<Integer> st = new Stack<>();
st.push(1); //1추가
st.push(2); //2추가
st.push(3); //3추가
st.peek(); //맨위 값 리턴 (3리턴)
st.pop(); //맨위 값 삭제 (3삭제)
st.isEmpty(); //0 리턴
st.contains(1); //1 리턴
|
cs |

1,2,3 차례로 쌓이는 듯이 저장된다.
스택 하단(bottom)은 1 , 스택 상단(top)은 3이 된다.

스택 상단 값, 즉 마지막으로 입력된 값을 알고 싶으면 peek함수를 통해 알아낸다.

pop함수를 실행하면 가장 마지막으로 입력된 값인 3이 삭제되면서 삭제된 값이 반환된다.
이후 pop을 실행하면 2가 반환된다.
스택의 사이즈를 알고 싶다면 size()함수를 사용한다.