[자료구조] 스택이란?

Halo·2025년 4월 16일
0

Algorithm

목록 보기
4/85
post-thumbnail

🤔 의미

스택은 들어있는 맨 위에 값을 가져오는 후입선출의 자료구조이다. 하지만 파이썬에서는 라이브러리는 따로 제공되지 않고 보통 from collections import deque로 라이브러리를 가져와 deque를 사용한다.


💻 구현

가. 클래스로 직접 구현

class Stack:
    #리스트를 이용한 스택 구현
    def __init__(self):
        self.top = []
    #스택 크기 반환
    def __len__(self) -> bool :
        return len(self.top)
    
    #구현함수
    #스택에 원소 삽입
    def push(self, item):
        self.top.append(item)
    #스택 가장 위에 있는 원소를 삭제하고 반환   
    def pop(self):
        if not self.isEmpty():
            return self.top.pop(-1)
        else:
            print("Stack underflow")
            exit()
    #스택 가장 위에 있는 원소를 반환
    def peek(self):
        if not self.isEmpty():
            return self.top[-1]
        else:
            print("underflow")
            exit()
    #스택이 비어있는 지를 bool값으로 반환
    def isEmpty(self) -> bool :
        return len(self.top)==0

나. deque 라이브러리 사용

from collections import deque

dq=deque() # 덱 생성
dq.append() # 덱의 가장 오른쪽에 원소 삽입
dq.popleft() # 가장 왼쪽 원소 반환
dq.appendleft() # 덱의 가장 왼쪽에 원소 삽입
dp.pop() # 가장 오른쪽 원소 반환
dp.clear() # 모든 원소 제거
dp.copy() # 덱 복사
dp.count(x) #x와 같은 원소의 개수를 계산
'''공식문서 : https://docs.python.org/3.8/library/collections.html#collections.deque'''

📝 출처

[Python자료구조] 스택(Stack)

profile
새끼 고양이 키우고 싶다

0개의 댓글