[Java]/문법, 자료구조, 알고리즘

Stack / Queue

응파카 2023. 3. 20. 21:10

Stack

  • LIFO(Last In, First Out) 원칙을 따르는 선형 데이터 구조.
  • 새로운 요소는 항상 최상위에 삽입되고, 삭제 역시 최상위에서만 이루어 진다.

Stack의 주요 메서드

  • push( {value} ) : Stack의 맨 위에 element를 삽입한다.
  • pop() : Stack의 맨 위에 있는 element를 삭제하고 반환한다.
  • peek() : Stack의 맨 위에 있는 요소를 삭제하지 않고 반환한다.
  • isEmpty() : Stack이 비어있는지 여부를 반환한다.
  • empty() : Stack이 비어있는지 여부를 반환한다.
  • search() : Stack에서 element가 몇 번째 위치에 있는지 반환한다. 1부터 시작한다.
  • clear() : Stack의 모든 값들을 삭제한다.

이 때 empty() 메서드와 isEmpty() 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.

  • empty() 는 Java Stack 클래스에서 제공하는 메서드이다.
  • isEmpty() 는 Java Collection interface에서 제공한다.

 

 

 

Queue

  • FIFO(First In First Out) 원칙을 따르는 선형 구조 체계이다.
  • 새로운 요소는 항상 마지막에 삽입되고, 삭제는 첫 번째 요소에서 이루어진다.

Queue의 주요 메서드

  • add(element) : Queue의 끝에 element를 삽입한다.
  • offer(element) : Queue의 끝에 element를 삽입한다.
  • peek() : Queue의 첫 번째 요소를 삭제하지 않고 반환한다.
  • remove() : Queue의 첫 번째 요소를 삭제하고 반환한다.
  • poll() : Queue의 첫 번째 요소를 삭제하고 반환한다.
  • element() : Queue의 첫 번째 요소를 삭제하지 않고 반환한다.

add(E element) 와 offer(E element) 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.

  • add(E element) 메서드는 Queue의 용량제한에 도달하면 IllegalStateException을 발생시킨다.
  • offer(E element) 메서드는 Queue의 용량제한에 도달하면 요소를 추가하지 않고 false를 반환한다.

poll() 메서드와 remove() 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.

  • poll() 메서드는 Queue가 비어있는 경우 null을 반환한다.
  • remove 메서드는 Queue가 비어있는 경우 NoSuchElementException을 발생시킨다.

'[Java] > 문법, 자료구조, 알고리즘' 카테고리의 다른 글

좌표 정렬  (0) 2023.03.24
Heap  (0) 2023.03.21
Scanner vs BufferedReader  (0) 2023.03.16
TreeSet, Red-Black Tree  (0) 2023.03.10
HashMap  (0) 2023.03.10