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