스택과 큐

최창효·2022년 1월 14일
0
post-thumbnail

스택

  • Stack은 쌓인다는 뜻을 가지고 있습니다.
    • 차곡차곡 쌓인 택배 무더기에서 가장 아래 택배만 먼저 꺼낼 수는 없습니다.
    • 가장 아래 쌓였다는 건 가장 먼저 들어왔다는 걸 의미합니다. (후입선출 == LIFO(Last In First Out))
  • 파이썬의 list는 스택구조 입니다.
  • 입구와 출구가 같은 공간입니다.

큐(Queue)

  • 입구와 출구가 따로 존재하는 공간입니다.
    • 드라이브스루를 상상하시면 됩니다.
  • 파이썬으로 문제를 풀 때에는 queue보다 양방향 입력과 출력이 가능한 deque(double-ended queue)가 더 선호됩니다.
  • 가장 먼저 들어온 값이 가장 먼저 나갑니다. (선입선출 == FIFO(First In First Out))

공통점

  • 스택과 큐 모두 선형 자료구조(1:1관계) 입니다.
  • 스택과 큐 모두 삽입과 삭제의 위치가 제한적입니다.

자바의 스택과 큐

자바의 스택

  • 구현
Stack<String> Stack = new Stack<String>();
  • 주요 메서드
    • push() // 삽입
    • pop() // 삭제
    • peek() // 확인

자바의 큐

  • 구현
    • Queue를 상속받는 LinkedList,ArrayDeque등으로 구현한다
Queue<String> queue = new LinkedList<String>();
  • 주요 메서드
    • offer() // 삽입
    • poll() // 삭제
    • peek() // 확인
  • Queue도 add와 remove가 있다
    • poll() // 큐에 값이 비었을 때 null을 return
    • remove() // 큐에 값이 비었을 때 Exception을 발생시킴
profile
기록하고 정리하는 걸 좋아하는 개발자.

0개의 댓글