Stack(스택) & Queue(큐)

Dayon·2023년 2월 11일
1

자료구조

목록 보기
5/10


🚚 스택 (Stack)

스택(stack)이란 쌓아 올리는 것을 의미한다.

[후입선출]

시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조적 특징

LIFO(Last In First Out) : 가장 나중에 들어온 데이터가 가장 먼저 나온다.

특징

  • 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있다.

  • 새로 삽입되는 자료를 가르키는 Top으로 정한 곳을 통해서만 접근할 수 있다

  • Top을 통해 삽입과 삭제를 할 수 있다.

  • 스택에서 추가하는 연산은 Push, 삭제하는 연산은 Pop으로 표현


활용

  • 웹 브라우저 방문 기록 (뒤로 가기) - 가장 나중에 열린 페이지 부터 보여준다

  • 실행 취소 (undo)

  • 수식의 괄호 검사 - 연산자 우선순위 표현을 위한 괄호 검사



🏭 큐 (Queue)

Queue는 줄, 줄을 서서 기다리는 것을 의미한다.

[선입선출]

일상 생활에서 또는 놀이동산에서 줄을 서서 기다릴때 먼저 온 사람부터 들어가는 구조

FIFO (First In First Out) : 가장 먼저 들어온 것이 가장 먼저 나온다.

특징

  • 스택에서 Top 한곳만을 통해 삽입과 삭제가 이뤄지지 않고, 삽입과 삭제작업이 양쪽에서 이뤄진다.

  • 큐의 가장 첫 원소 = Front , 삭제 연산만 수행되는 곳

  • 큐의 가장 끝 원소 = Rear , 삽입 연산만 수행되는 곳

  • 큐의 Front에서 이뤄지는 삭제 연산은 디큐(Dequeue), Rear에서 이뤄지는 삽입 연산은 인큐(Enqueue)

  • 접근방법은 가장 첫 원소와 가장 끝 원소로만 가능

  • 데이터를 넣고 뺄 때 해당 값의 위치를 기억해야 한다 (스택에서 스택 포인터와 같은 역할)


활용

  • 은행 업무
  • 프린터 인쇄 대기열 (우선 순위가 같은 작업 예약)
  • 너비 우선 탐색 (BFS)
  • 프로세스 관리
  • 캐시 구현


🔗 참조한 사이트

https://devuna.tistory.com/22

https://gyoogle.dev/blog/computer-science/data-structure/Stack & Queue.html



profile
success is within reach, allow yourself time

0개의 댓글