코딩항해기

[JAVA] 스택 Stack 본문

JAVA

[JAVA] 스택 Stack

miniBcake 2024. 11. 19. 15:00

 

 

스택 Stack

스택은 쌓이다는 뜻을 가진 용어로 데이터를 순서대로 쌓는 자료구조, 컬렉션프레임워크이다. 

나중에 들어온 데이터가 제일 먼저 빠져나가는 후입선출 LIFO 구조로 되어있어 가장 나중에 들어온 데이터를 먼저처리하는 취소같은 경우에 사용된다. 

 

LIFO
Last In First Out

 

스택의 특징

  1. 후입선출 (LIFO : Last In First Out) 구조 : 먼저 들어온 데이터가 나중에 빠져나가는 구조
  2. 단방향 입출력 구조 : 데이터의 들어오는 방향과 나가는 방향이 같다.
  3. 데이터를 하나씩만 넣고 뺄 수 있다.
  4. 깊이 우선 탐색(DFS)에 이용된다.
  5. 재귀 함수의 동작 흐름과 같은 구조를 가진다.

 

스택 사용

선언

Stack<Integer> stack = new Stack<>(); //컬렉션프레임워크 중 하나로 제네릭을 선언해야한다

 

값 넣기

stack.push(data); //추가한 데이터를 반환한다
stack.add(data); //성공여부를 boolean으로 반환한다

 

값 삭제

int num = stack.pop(); //가장 마지막에 들어온 값이 삭제된다
//삭제된 값을 반환한다

 

전체 삭제

stack.clear();

 

 

스택 주요 메서드

push(E item) E 스택 top에 요소 추가 stack.push(1)
pop() E top 요소 제거하고 반환 stack.pop()
peek() E top 요소 반환(제거X) stack.peek()
empty() boolean 스택이 비었는지 확인 stack.empty()
search(Object o) int 요소의 위치 반환(top이 1) stack.search("item")
size() int 스택의 크기 반환 stack.size()
clear() void 스택의 모든 요소 제거 stack.clear()
contains(Object o) boolean 요소 포함 여부 확인 stack.contains(1)

'JAVA' 카테고리의 다른 글

[JAVA] OOP의 5가지 원칙  (0) 2024.11.30
[JAVA] 가변인자  (1) 2024.10.20
[JAVA] 날짜 함수 (JAVA 8 이후)  (0) 2024.10.17
[JAVA] UUID Universally Unique Identifier  (0) 2024.10.17
[JAVA] JavaDoc 주석 (API주석)  (0) 2024.10.13