TIL : Data Structure (Stack & Queue)

영아·2021년 4월 14일
0

유후 오늘은 처음 배워보는 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개의 댓글