[CS] 자료구조(Stack & Queue) 기초 Day-26

cptkuk91·2021년 11월 11일
0

CS

목록 보기
46/139

자료구조란?

여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다.

  • 데이터란? 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값입니다.

데이터는 분석하고 정리하고, 활용해야 의미를 가질 수 있습니다.

자료구조를 통해 목적에 맞게 구분하고, 분류하여 사용합니다.

자주 사용하는 네 가지 자료구조

  • Stack
  • Queue
  • Tree
  • Graph

대부분의 자료구조는 특정 상황에 놓인 문제를 해결할 때 특화되어 있습니다. 많은 자료구조를 알아두면, 어떤 상황이 왔을 때에도 적합한 자료구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있습니다.

특정 문제를 해결할 때 적합한 자료구조를 찾아 데이터를 정리하고 활용할 수 있다면 상황에따라 가장 적합하고 정확한 코드를 작성할 수 있습니다.

Stack

쌓다, 쌓이다, 포개다 와 같은 뜻을 가지고 있습니다. 이 자료구조는 데이터를 순서대로 쌓는 자료구조입니다.

가장 먼저 입력된 데이터는 가장 나중에 나올 수 있습니다. 반대로 가장 마지막에 입력된 데이터는 가장 빨리 나올 수 있습니다.

Stack의 특징은 입력과 출력이 한 방향으로 이루어지는 제한적 접근에 있습니다.

  • LIFO: Last In First Out
  • FILO: First In Last Out

Stack의 실사용

우리가 사용하는 브라우저의 뒤로 가기, 앞으로 가기 기능을 구현할 때 Stack이 활용됩니다.

작동 원리
1. 새로운 페이지로 접속할 때, 현재 페이지를 Prev Stack에 보관합니다.
2. 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈 때, 현재 페이지를 Next Stack에 보관하고 Prev Stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져옵니다.
3. 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동할 때에는 Next Stack의 가장 마지막으로 보관된 페이지를 가져옵니다.
4. 마지막으로 현재 페이지를 Prev Stack에 보관합니다.

Queue

줄을 서서 기다리다, 대기행렬이라는 뜻을 가지고 있습니다.
자료구조 Queue는 Stack과 반대되는 개념으로, 먼저 들어간 데이터가 먼저 나오는 FIFO, LILO 특징을 가지고 있습니다.

  • FIFO: First In First Out
  • LILO: Last In Last Out

Queue는 데이터가 입력된 순서대로 처리할 때 주로 사용합니다.

Queue 실사용

  1. 문서를 출력할 때 인쇄 버튼을 누르면 Queue에 들어갑니다.
  2. 프린터는 인쇄 작업 Queue에 들어온 문서를 순서대로 출력합니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글