Queue & Stack

Syoee·2023년 3월 9일
0

Algorithm

목록 보기
2/6
post-thumbnail

Queue

  큐(Queue) 는 데이터를 저장하고 관리하는 자료구조 중 하나입니다.
  큐는 일반적으로 FIFO(First-In-First-Out) 원칙에 따라 동작합니다.
  이 말은, 큐에 들어온 데이터는 큐에 들어온 순서대로 처리되며, 가장 먼저 들어온 데이터가 가장 먼저 처리됩니다.

  큐는 실제 생활에서 일어나는 일과 유사합니다.
  예를 들어, 은행 창구에서 대기열에 서 있는 사람들이 큐에 들어오는 데이터이고, 은행원이 그들을 처리하는 것이 큐의 처리 작업이 됩니다.

용어 정리

• Enqueue: 큐에 데이터를 추가하는 것을 의미합니다.
• Dequeue: 큐에서 데이터를 삭제하는 것을 의미합니다.
• Front: 큐에서 가장 앞에 있는 데이터를 의미합니다.
• Back(Rear): 큐에서 가장 뒤에 있는 데이터를 의미합니다.
  큐는 배열 또는 링크드 리스트를 사용하여 구현할 수 있습니다.
  배열을 사용한 구현에서는 큐의 크기가 고정되어 있으며, 링크드 리스트를 사용한 구현에서는 큐의 크기가 동적으로 조정됩니다.

용도별 정리


• 대기열 관리: 은행, 공항 등에서 대기열 관리에 사용됩니다
• 너비 우선 탐색(BFS): 그래프 탐색 알고리즘에서 사용됩니다.
• 스레드 풀: 스레드 풀에서 작업 큐를 관리하는 데 사용됩니다.

  큐는 스택(Stack)과 함께 가장 기본적인 자료구조 중 하나입니다.

Stack

  스택(Stack) 은 데이터를 저장하고 관리하는 자료구조 중 하나입니다.
  스택은 일반적으로 LIFO(Last-In-First-Out) 원칙에 따라 동작합니다.
  이 말은, 스택에 데이터를 추가할 때는 가장 최근에 추가된 데이터가 가장 위에 위치하며, 스택에서 데이터를 삭제할 때는 가장 최근에 추가된 데이터부터 삭제된다는 뜻입니다.

  스택은 컴퓨터 프로그래밍에서 광범위하게 사용됩니다.
예를 들어, 함수 호출을 추적하거나 괄호 짝을 맞추기 위해 사용될 수 있습니다.

용어 정리

• Push: 스택에 데이터를 추가하는 것을 의미합니다.
• Pop: 스택에서 데이터를 삭제하는 것을 의미합니다.
• Peek: 스택의 맨 위에 있는 데이터를 조회하는 것을 의미합니다.
  스택은 배열 또는 링크드 리스트를 사용하여 구현할 수 있습니다.
  배열을 사용한 구현에서는 스택의 크기가 고정되어 있으며, 링크드 리스트를 사용한 구현에서는 스택의 크기가 동적으로 조정됩니다.

용도 정리

• 함수 호출 추적: 함수가 호출될 때마다 스택에 호출된 함수의 정보를 저장하여 추적합니다.
• 괄호 짝 검사: 괄호 짝을 맞추기 위해 스택을 사용하여 여는 괄호를 저장하고 닫는 괄호가 나타날 때 스택에서 여는 괄호를 삭제합니다.
• 뒤집기: 문자열을 뒤집을 때 스택을 사용할 수 있습니다.
스택은 다른 자료구조와 알고리즘을 이해하는 데 도움이 되는 기본적인 자료구조 중 하나입니다. 스택을 이해하면 많은 다른 자료구조와 알고리즘을 이해하는 데 도움이 됩니다.


Wikipedia - Queue

https://ko.wikipedia.org/wiki/%ED%81%90_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0)

Wikipedia - Stack

https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

profile
함께 일하고 싶어지는 동료, 프론트엔드 개발자입니다.

0개의 댓글