자료구조 <스택: Stack>

김현우·2021년 9월 18일
0

스택 / Stack 이란?

스택은 데이터의 삽입과 삭제가 데이터의 가장 한쪽 끝에서만 일어나며 가장 마지막에 삽입된 데이터가 가장 먼저 사용되거나 삭제되는 후입선출 (LIFO - Last In, First Out) 방식을 따르는 자료구조이다.

주요 메소드

push / pop

데이터를 삽입하는 과정push,
가장 마지막에 삽입한 데이터를 삭제하는 과정pop이라고 부른다.

데이터를 삭제하는 pop의 경우 현재 스택에 데이터가 비어있는지 여부를 먼저 확인(isEmpty)한 후에 실행한다.

peek

pop이 가장 마지막에 삽입한 데이터를 삭제하는 것이라면
peek은 가장 마지막에 삽입한 데이터를 삭제하지 않고 return 해주는 메소드이다.

isEmpty

isEmpty는 현재 스택이 비어있는지 여부를 확인하는 메소드 입니다.

Python의 List

파이썬의 경우 List 자료형을 사용해서 바로 스택 자료구조 구현이 가능하다 push는 append로 pop은 pop으로... 굳이 List 자료형을 이용해서 클래스로 구현을 하자면 다음과 같이 구현할 수 있을 것이다.

클래스로 구현

class Stack():
    def __init__(self):
        self.stack = []

    def push(self, data):
        self.stack.append(data)

    def pop(self):
        pop_object = None

        if self.isEmpty():
            print("Stack is Empty")

        else:
            pop_object = self.stack.pop()
        return pop_object

    def peek(self):
        peek_object = None

        if self.isEmpty():
            print("Stack is Empty")
        else:
            peek_object = self.stack[-1]

        return peek_object

    def isEmpty(self):
        is_empty = False
        if len(self.stack) == 0:
            is_empty = True
        return is_empty

이 외의 연산도 쉽게 구현할 수 있을 것이다.

추천 동영상 강좌

profile
두려워 말라, 놀라지 말라, 굳세게 하리라

0개의 댓글