Java/Basic

[Java/Basic] Queue란 ? Stack이란? 사용법 및 기본개념

Jeong Jeon
반응형

Queue와 Stack을 알아보려고 한다.

 

Queue(큐)

Queue는 FIFO First in First Out 구조로, 먼저 들어간 데이터를 먼저 꺼내는 방식이다.

  • 데이터를 일시적으로 쌓아두기 위한 자료구조
  • 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행
  • 다른 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행
  • 그래프의 넓이 우선 탐색(BFS)에서 사용
  • 버퍼링(담아놓고 순차적으로)

Enqueue : 큐 맨 뒤에 데이터 추가
Dequeue : 큐 맨 앞쪽의 데이터 삭제

 

Queue Method

메서드 설  명
add( ) 객체 추가
성공 : true,
실패(
저장공간이 부족 등)  IllegalStateException 발생
remove( ) 객체삭제
비어있으면  NoSuchElementException 발생
element( ) 삭제없이 요소를 읽어옴
peek 와 달리  Queue 가 비었을 때 NoSuchElementException 발생
offer( ) 객체 추가
성공 : true, 실패 : false
poll( ) 객체를 꺼내서 반환.
Queue isEmpty? => null 반환
peek( )
삭제없이 요소를 읽어옴.
Queue isEmpty? => null 반환

반대로

 

Stack(스택)

Stack은 LIFO Last in First Out 구조로, 가장 나중에 들어간 데이터를 먼저 꺼내는 방식이다.

 

  • 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 사용
  • 그래프의 깊이 우선 탐색(DFS)에서 사용
  • 재귀적(Recursion) 함수를 호출 할 때 사용
메서드 설  명
empty( ) Stack 이 비어있는지 확인
peek( ) Stack 의 맨 위에 저장된 객체를 반환
pop( ) 과 달리  Stack 에서 객체를 꺼내지 않음(비었을 때는  EmptyStackException 발생)
pop( ) Stack 의 맨 위에 저장된 객체를 꺼냄(비었을 때는  EmptyStackException 발생)
push( ) 객체( item )를 입력
search( ) Stack 에서 주어진 객체( o )를 찾아서 그 위치를 반환, 못 찾으면  -1 을 반환(배열과 달리 위치가 1부터 시작)
contains(int value)
Stack에서 값을 찾는다.(있는지 존재 여부)

 

반응형