ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stack과 Queue의 기본적인 이해
    각종 학습 요약/DataStructure 2022. 5. 26. 16:23

    Stack과 Queue의 기본적인 이해

    데이터를 효율적으로 다룰 수 있는 방법들을 모두 정리하여 둔 자료구조라는 것이 있습니다. 이 글에서는 자료구조의 대표주자 격인 스택(Stack)과 큐(Queue)의 특징와 원리를 이해해보고, 기능까지 간단히 알아보겠습니다.

    스택과 큐의 공통점


    둘 다 데이터를 담는 모양이 빨대처럼 생겼어요. 길다란 통로에 줄지어서 데이터들이 존재합니다. 데이터가 하나씩 들어가고, 하나씩 나갑니다.

    스택과 큐의 차이점


    줄지어서 입장한 데이터들이 있었죠. 이제 나갈때를 상상해보면, 스택은 나중에 들어온 데이터가 먼저 나갑니다. 가장 먼저 들어온 데이터가 가장 늦게 나가요. 빨대의 한 쪽 끝이 막혀있다고 생각하면 쉽겠네요. 입구가 곧 출구이기 때문에, 늦게 들어온 데이터가 먼저 나가는 것이죠.
    이러한 특성을 후입선출(LIFO, Last In First Out)라고 부르기도 해요.

    큐는 입구와 출구가 별개입니다. 정말 빨대 모양인거죠. 그래서 먼저 들어온 데이터가 순서대로 먼저 나가게 됩니다. 이런 특성은 선입선출(FIFO, First In First Out)이라고 해요.

    스택과 큐를 사용할 때는 이러한 성질을 잘 이해하고 사용해야 합니다.

    스택의 주요 기능


    스택에는 정의되어야 할 필수 기능들이 몇 가지 있어요.

    1. push : 요소를 추가합니다.
    2. pop : 요소를 꺼냅니다.
    3. top : 맨 위에 존재하는 데이터(pop()하면 튀어나올 데이터)가 뭔지 알려줍니다.

    큐의 주요 기능


    1. add : 요소를 추가합니다. enQueue라고 하기도 합니다.
    2. poll : 요소를 꺼냅니다. deQueue라고 하기도 합니다.
    3. peek : 맨 앞에 존재하는 데이터(enQueue하면 튀어나올 데이터)가 뭔지 알려줍니다.

    공통적으로는 사이즈 확인, 비어있는지 확인, 데이터가 가득 차있는지 확인, 전부 비우기 기능들을 제공하기도 합니다.

    댓글

Designed by Tistory.