Stack

정승균·2020년 12월 1일
0

파이썬 자료구조

목록 보기
3/7
post-thumbnail

1. Stack 메소드

  • size(): 현재 스택에 들어 있는 데이터 수를 구함
  • isEmpty(): 현재 스택이 비어 있는지를 판단 (size() == 0?)
  • push(x): 데이터 원소 x 를 스택에 추가
  • pop(): 스택에 가장 나중에 저장된 데이터 원소를 제거 (또한, 반환)
  • peek(): 스택에 가장 나중에 저장된 데이터 원소를 참조 (반환), 그러나 제거하지는 않음

2. Python list로 구현

class ArrayStack:

    def __init__(self):
        self.data = []
    
    def __repr__(self):
        return self.data.__repr__()
    
    def size(self):
        return len(self.data)

    def isEmpty(self):
        return self.size() == 0

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

    def pop(self):
        return self.data.pop()

    def peek(self):
        return self.data[-1]

3. Doubly Linked List로 구현


from doubly_linked_list import*

class LinkedListStack:

    def __init__(self):
        self.data = DoublyLinkedList()
        
    def __repr__(self):
        return self.data.__repr__()

    def size(self):
        return len(self.data)

    def isEmpty(self):
        return self.size() == 0

    def push(self, item):
        node = Node(item)
        self.data.insertAt(self.size(), node)

    def pop(self):
        return self.data.popAt(self.size()-1)

    def peek(self):
        return self.data[self.size()-1].data

소스코드: stack.py

0개의 댓글

관련 채용 정보