[자료구조] 스택 (Stack)

zerokick·2023년 4월 13일
0

Data Structure

목록 보기
4/14
post-thumbnail

스택 (Stack)


스택이란?

한쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조

스택의 특징

  1. LIFO(Last-In, First-Out), FILO(First-In, Last-Out)
  2. 가장 나중에 쌓은 데이터를 가장 먼저 빼낸다.
  3. 데이터를 한쪽 끝에서만 넣거나 뺄 수 있다.

cf)
push : 스택에 데이터를 넣는 행위
pop : 스택에서 데이터를 빼는 행위

  1. 원소의 추가/제거 O(1)
  2. 제일 상단 원소의 검색 O(1)
  3. 제일 상단이 아닌 나머지 원소들의 검색/추가/제거가 원칙적으로 불가능하다.

스택의 장단점

장점

  1. 구조가 단순하다.
  2. 데이터의 저장/읽기 속도가 빠르다.

단점

  1. 데이터의 최대 개수를 미리 정해야 한다.
  2. 최대 개수를 미리 정해놓아야 하니, 저장 공간의 낭비가 발생할 수 있다.

스택의 선언

import java.util.Stack;

Stack<Integer> stackInt = new Stack<Integer>();

스택의 데이터 핸들링

데이터 추가

stackInt.push(1);	// [1]
stackInt.push(2);	// [1, 2]
stackInt.push(3);	// [1, 2, 3]

데이터 삭제

stackInt.pop();		// [1, 2]
stackInt.pop();		// [1]
stackInt.pop();		// []
profile
Opportunities are never lost. The other fellow takes those you miss.

0개의 댓글