자료구조

[자료구조] 스택(Stack)과 큐(Queue)

haseung22 2025. 2. 21. 15:26

스택(Stack)

스택(Stack)은 후입선출(LIFO, Last In First Out) 방식의 자료구조이다. 
가장 마지막에 저장된 데이터가 가장 먼저 꺼내지는 형태이다.

 

주요 연산

Push() 스택의 맨 위에 새로운 요소 추가
Pop() 스택의 맨 위에 있는 요소  반환 및 삭제
Peek() 스택의 맨 위에있는 요소  반환

 

사용처

  • 웹 브라우저 '뒤로가기' 기능
  • 메모리 영역의 스택 영역에 사용
  • 문자열 뒤집기 등

 

큐(Queue)

큐(Queue)는 선입선출(FIFO, First In First Out) 방식의 자료구조이다.

가장 먼저 저장된 데이터가 가장 먼저 꺼내지는 형태이다.

 

주요 연산

offer() 큐의 맨 뒤에 요소  추가, 성공 시 true 반환. / 큐가 가득찬 상태라면 false 반환
add() 큐의 맨 뒤에 요소  추가, 성공 시 true 반환. / 큐가 가득찬 상태라면 IllegalStateException 에러 발생
remove() 큐의 맨 앞에 요소 반환 및 삭제 / 큐가 비어있다면    NoSuchElementException 에러 발생
pull() 큐의 맨 앞에 요소 반환 및 삭제 / 큐가 비어있다면  Null 반환
element() 큐의 맨 앞에 요소 반환 / 큐가 비어있다면 NoSuchElementException 에러 발생
peek() 큐의 맨 앞에 요소 반환 / 큐가 비어있다면 Null 반환
clear() 큐를 비운다.
isEmpty() 큐가 비어있는지 확인

 

사용처

  • 프린터 출력 처리
  • 선입선출이 필요한 대기열 등