TIL : Data Structure (Stack & Queue)

영아·2021년 4월 14일

유후 오늘은 처음 배워보는 Data Structure에 대해 배웠다.
지금까지는 배워보지 못한 부분이라서 걱정이 컸다. (코플릿 문제풀때 현실이 되긴했다.)


1. Data Structure

자료구조란 여러 데이터들의 묶음을 어떻게 저장할 것이고, 사용할 것인지 정의한 것

그렇다면 자료(data)란?

문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 것들을 자료(data)라고 한다.

이러한 자료들은 자료들의 특징에 잘 맞게 정리하고 활용되어여한다!!

위의 사진처럼 각 자료구조는 특정한 상황의 문제해결에 특화되어 있다.
(다양한 자료구조를 알아두면 문제해결에 유리하다고함 🤩)


2. Stack

Stack은 쌓다라는 의미! (접시를 쌓아 놓은 형태)

자료를 쌓는 자료구조!!

  • FILO (First In Last Out)
    -> 가장 먼저 오는것이 가장 나중에 나간다.

  • LIFO (Last In First Out)
    -> 가장 나중에 들어온 것이 가장 먼저 나간다. (이게 더 직관적인듯 🤓)

Stack의 실사용

  • Ctrl + Z

  • Ctrl+ Shift + Z

누구나 문서를 작성 해보았다면 알 수 있는 단축키이다.

가장 마지막에 했던 실행방식을 되돌리는 LIFO를 보여주는 사례라고 생각한다.

Stack의 기능

  • Push : 스택에 데이터를 추가하는 기능!
  • Pop : 스텍에서 가장 상위의 데이터를 가져오는 기능!

3. Queue

Queue는 줄을 서서 기다리다, 대기 행렬

  • FIFO (First In Last Out)
    -> 가장 먼저 오는것이 가장 먼저 나간다.

  • LILO (Last In First Out)
    -> 가장 나중에 들어온 것이 가장 나중에 나간다.

선입선출의 구조!

Queue의 실사용

  • 문서를 프린트 할 때

내가 인쇄 요청을 한 순서대로 문서의 결과물들이 출력되어 나온다!

수업을 듣다 보니 컴퓨터와 프린트기의 사이에서 자료를 주고 받을 때 장치들 간의 속도차이, 시간차이를 극복하기 위해서 임시기억창치로 Queue가 사용 된다고 한다.
이 전반의 과정을 버퍼(buffer)이라고 한다.


마무리

Stack과 Queue를 배우면서 이미 많이 접해왔던 구조의 형태라는것을 알게되었다.
사실은 아직 처음 배운것이라서 이것을 어떻게 적용시켜야할지 걱징이 크다.
(특히 코플릿 문제를 풀면서 ㅠ 개념에대한 이해만 했지 문제에 적용시키는 것은 많은 연습이 필요하다고 느꼈다. 😩😩😩)

profile
코딩 배우는 아이

0개의 댓글