python:py_lists:py_code:stacks
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 |
python/py_lists/py_code/stacks.txt · Last modified: by adminguide
