====== Stack Algorithms ====== ^Create a Stack Algorithm^ |class Stack: def __init__(self): self.items = [] def push(self, data): self.items.append(data) def pop(self): return self.items.pop() def size(self): return len(self.items) def is_empty(self): return len(self.items) == 0 def peek(self): return self.items[−1]| ^Create a Linked List Stacks Algorithm^ |class Node: def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): self.head = None def push(self, data): node = Node(data) if self.head is None: self.head = node else: node.next = self.head self.head = node def pop(self): if self.head is None: raise IndexError('pop from empty stack') poppednode = self.head self.head = self.head.next return poppednode.data| ^Min Stack Algorithm^ |class MinStack(): def __init__(self): self.main = [] self.min = [] def push(self, n): if len(self.main) == 0: self.min.append(n) elif n <= self.min[−1]: self.min.append(n) else: self.min.append(self.min[−1]) self.main.append(n) def pop(self): self.min.pop() return self.main.pop() def get_min(self): return self.min[−1]| ^XX Stack Algorithm^ || ^XX Stack Algorithm^ || ^XX Stack Algorithm^ || ^XX Stack Algorithm^ ||