관리 메뉴

NineTwo meet you

[자료구조] 스택 Stack 본문

CS/자료구조

[자료구조] 스택 Stack

NineTwo 2021. 7. 14. 17:51
반응형

스택 Stack

먼저 넣은 데이터가 가장 나중에 나오는 형태의 자료구조를 의미한다.

스택은 Last In Frist Out의 LIFO 구조이다.

이는  First In First Out큐 Queue와 반대된다고 생각할 수 있다.

실생활에서 간단한 예시를 들자면 프링글스를 생각할 수 있다.

과자의 맨 밑에 들어있는 과자가 가장 먼저 들어갔지만 먹는 순서는 가장 나중에 들어간 과자부터 먹을 수 있다.

 

스택 선언

스택를 사용하기 위해서는 Stack을 import 해야 한다.

import java.util.Stack;
// Stack<자료형> 이름 = new Stack<>();

// ex
Stack<Integer> st = new Stack<>();

push

 

스택에 자료를 집어넣을때 사용하는 메소드다.

st.push(1);
st.push(2);
st.push(3);

pop

스택에 자료를 뺄때 사용하는 메소드다.

앞서 말했듯이 LIFO 형인 스택의 경우 가장 나중에 삽입된 데이터부터 빠지게 된다.

int result = st.pop(); // 3

peek

마지막에 삽입한 데이터를 반환하는 메소드다.

이때 반환했다고 poll된 것이 아니라 단지 어떤 데이터인지 보여주는 역할을 한다고 생각하면 쉽다.

int last = st.peek(); // 2


empty

스택이 비어있는지 여부를 검사한다.

비어있으면 true, 아니면 false를 리턴한다.

if(st.empty()){
	System.out.println("스택 비어있음");
}else{
	System.out.println("스택 안비어있음");
}

// 스택 안비어있음

search

스택이 해당 요소를 가지고 있는지 파악할 때 사용한다.

top부터 인덱스를 1로 보고 해당 요소의 위치를 반환하는데 만약 없다면 -1을 리턴한다.

int ind = st.search(2); // 1
반응형

'CS > 자료구조' 카테고리의 다른 글

[자료구조] 큐 Queue  (0) 2021.07.14
[자료구조] 배열 Array  (0) 2021.07.14
Comments