본문 바로가기

자바/자료구조

[자료구조] 스택 (Stack) / 2022.03.15

1. 스택(Stack) 이란?

스택이란 물건을 차곡차곡 쌓는 것처럼 자료를 쌓는 구조이다. 

예를 들어 책을 쌓는다고 가정해보자. 순서대로 1번, 2번, 3번, 4번, 5번 책을 쌓는다면 책을 들어 올릴 때에는 맨 위에 있는 5번부터 들어 올릴 것이다.

가장 마지막에 쌓은 것을 처음으로 들어올리는, 이것을 스택에서는 Last In First Out (LIFO) 구조라고 한다.

 

책을 쌓는 순서

 

들어 올리는 순서

2. 스택의 주요 메소드

메소드 설명
void push(E element) Stack 맨 위에 element 추가
E pop() Stack의 맨 위 element 삭제
E peek() Stack의 맨 위 element 리턴
boolean isEmpty() Stack이 비었는지 확인
int size() Stack이 포함하고 있는 요소의 개수 리턴

 

3. 스택 사용하기

 

- 스택 생성하기

import java.util.Stack; // 필수 import문

Stack<Integer> stack = new Stack<>(); // int형 스택 선언
Stack<String> stack2 = new Stack<>(); // char형 스택 선언

 

- 스택에 요소 삽입하기

// push 메소드를 사용하면 된다.
stack.push(3);
stack.push(4);
stack.push(5);
// 3-> 4-> 5 순서대로 스택에 추가

 

현재 스택

- 스택의 요소 제거하기

// pop 메소드를 사용하면 된다.
stack.pop();
stack.pop();
// 맨 위의 요소부터 삭제 된다.

 

현재 스택

- 스택의 맨 위 요소 확인하기

// peek 메소드 사용
stack.push(3);
stack.push(7);
stack.peek(); // 맨 위의 요소가 7이니 7리턴

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

[자료구조] 배열 (ArrayList) / 2022.02.27  (0) 2022.02.27