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 |