ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DataStructure - Stack(스택)
    Programming/Data Structure & Algorithm 2021. 10. 14. 20:20

     

    안녕하세요 Beepeach 입니다 :)

    오늘은 데이터구조중에서 Stack에 대해서 공부해보려 합니다.

     

     


     

    Stack

     

    Stack은 queue와 같이 아주 기본적인 데이터 구조입니다.

    주로 프로세스의 함수 처리 방식에 사용됩니다.

     

    Stack은 LIFO(Last In First Out) 정책을 따릅니다.

    즉 가장 마지막에 들어온 데이터가 가장 첫 번째로 나가게 됩니다.

    예를 들어 급식실의 식판을 생각하면 편합니다. 식판을 쌓아두면 제일 아래에 있는 식판을 가져가는 게 아니라 가장 위에 있는 식판을 가져다 쓰게 되죠??

    이러한 방식이 LIFO입니다. (역시 FIFO처럼 리포가 아니라 라이포로 발음합니다.)

     

    스택은 구조가 단순하고 구현이 쉽다는 장점이 있습니다.

    하지만 최대 공간을 미리 확보해야 하고 그렇기 때문에 공간 낭비가 발생할 수 있는 단점이 존재합니다.

     

     


     

    Push, Pop

     

    스택에 데이터를 넣는 작업을 Push라고 합니다.

    그리고 스택에 데이터를 빼는 작업을 Pop이라고 합니다.

     

     

     

     


     

    스택 구현하기

     

     

    Array가 제공하는 메서드를 사용하면 queue와 마찬가지로 Stack을 손쉽게 구현할 수 있습니다.

    append(_:) 메서드로 array 맨 뒤에 element를 추가시키고

    popLast() 메서드로 맨 뒤의 element를 삭제시키면서 리턴해주면 됩니다.

     

    Line 25 pop 뒤에 as Any를 넣어준 이유는 단순히 경고메세지를 없애기 위함입니다.

     

     


     

    728x90
Designed by Tistory.