[자료구조] Stack, Queue

yeongeun lee·2021년 8월 17일
0

자료구조

목록 보기
3/4
post-thumbnail

Stack

- Stack의 특징

스택(Stack)은 데이터를 임시 저장할 때 사용하는 구조

  • 데이터 입출력 순서 : LIFO(Last In First Out), 후입선출 방식
  • 푸시(Push) : 스택에 데이터를 추가하는 작업
  • 팝(Pop) : 스택에서 데이터를 꺼내는 작업
  • 탑(Top) : 푸시와 팝이 이루어지는 윗 부분 (Stack은 Push와 Pop이 Top에서만 이루어진다.
  • 바닥(Bottom) : 데이터가 쌓이는 아랫부분

스택에서 푸시와 팝 과정

Queue

- Queue의 특징

큐(Queue) 또한 스택(Stack)과 마찬가지로 데이터를 임시 저장할 때 사용하는 구조

  • 데이터 입출력 순서 : FIFO(First In Fist Out), 선입선출 방식
  • 인큐(enqueue) : 큐에 데이터를 추가하는 작업
  • 디큐(dequeue) : 큐에서 데이터를 꺼내는 작업
  • 프론트(Front) : 데이터를 꺼내는 쪽
  • 리어(Rear) : 데이터를 넣는 쪽

큐에서 인큐와 디큐 과정

Stack과 Queue의 차이점

  • 가장 눈에 띄는 차이점은, 데이터 입력과 출력을 하는 순서
    Stack과 Queue 모두 데이터를 임시로 저장한다는 공통점을 가지고 있지만, 데이터 입출력 순서에서 차이가 있다.

Stack과 Queue의 차이점
데이터 출력을 할 때에 차이가 있다.

Stack과 Queue의 장단점

Stack의 활용

  • 브라우저 사용시 방문 기록 (뒤로 가기 버튼을 클릭 시에, 가장 나중에 열린 페이지부터 나오기 때문에 = 실행 취소(undo)와 같은 원리)
  • 연산자 우선 순위, 괄호 검사

Queue의 활용

  • 순차적으로 처리해야 하는 일 (=우선순위가 동일한 일)
  • 너비 우선 탐색 (BFS, Breath-First Search) 구현
  • 캐시 (Cache) 구현
  • 일상생활에서 찾을 수 있는 고객센터, 놀이 공원 및 고객센터 대기 줄 등
profile
회색콩

0개의 댓글