[TIL] Stack & Queue

dustjd1535·2020년 9월 10일
0
post-thumbnail

스택 (Stack) 이란 ?

스택이란 쌓아 올린다는 것을 의미한다. 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다.

**스택 (Stack) 의 특징 **

스택은 같은 구조와 크기의 자료를 정해진 방향으로 쌓을수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며, 삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에선 자료를 삭제할 때도 top을 통해서만 가능하게 된다. 따라서 스택은 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 특징이 있다. 이러한 구조를 후입선출(LIFO, Last-In-First-Out)구조라고 한다.

스택에서 top을 통해 삽입하는 연산은 push,top을 통해 삭제하는 연산은 pop이라고 한다.

스택 (Stack)의 활용 예시

  • 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다.
  • 웹 브라우저 방문기록(뒤로 가기): 가장 나중에 열린 페이지부터 다시 보여준다.
  • 실행 취소 (unde) : 가장 나중에 실행된 것부터 실행을 취소한다.
  • 후위 표기법 계산
  • 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)

큐 (Queue) 란 ?

Queue의 사전적의미는 무엇을 기다리는 사람, 줄, 혹은 줄을 서서 기다린다는 것을 의미한다. 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 차구에서 처리하는 것과 같이 선입선출(FIFO, First in firs out) 방싣ㄱ의 자료구조를 말한다.

**큐 (Queue) 의 특징 **

정해진 한 곳을 통해서 삽입, 삭제가 이루어지는 스택과는 달리 큐는 한쪽 끝에서 삽입 작없이, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다. 이때 삭제연산만 수행되는 곳을 프론트(front), 압입연삼나 이루어지는 곳을 리어(rear)로 정하여 각각의 연산작업만 수행된다. 즉 큐 (Queue)에서 프론트 원소는 가장 먼저 큐에 들어왔던 첫 번쨰 원소가 되는 것이며, 리어(rear) 원소는 가장 늦게 큐에 들어온 마지막 원소가 되느 것이다.

큐 (Queue)의 활용 예시

  • 은행 업무
  • 콜센터 고객 대기시간
  • 프로세스 관리
  • 캐시(Cache) 구현
  • 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
profile
더 나은 개발자가 되자.

1개의 댓글

comment-user-thumbnail
2020년 11월 3일

한 수 배우고 갑니다 ~

답글 달기