스택(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()함수를 사용한다.
'성장 일기 > 알고리즘' 카테고리의 다른 글
[백준][자바(java)][스택] #10773 제로 (0) | 2021.04.05 |
---|---|
[QUEUE(큐)] 백준 자바(java) #2164 카드2 (0) | 2021.04.05 |
[재귀] 백준 java(자바) #2447 별 찍기 - 10 (0) | 2021.03.25 |
[재귀] 백준 JAVA(자바) #11729 하노이 탑 이동 순서 (0) | 2021.03.25 |
[JAVA]재귀(Recursion) (0) | 2021.03.25 |