abstracted structures fixed

This commit is contained in:
Mari Wahl 2015-01-06 21:11:21 -05:00
parent 3fdbc2a605
commit 01703751f1
98 changed files with 305 additions and 856 deletions

72
src/abstract_structures/stacks/stack.py Normal file → Executable file
View file

@ -1,53 +1,65 @@
#!/usr/bin/python
#!/usr/bin/env python
__author__ = "Mari Wahl"
__email__ = "marina.w4hl@gmail.com"
# copy of the class ../Stack.py
''' define the stack class '''
__author__ = "bt3"
class Stack(object):
def __init__(self):
self.items = []
def isEmpty(self):
return not bool(self.items)
self.content = []
self.min_array = []
self.min = float('inf')
def push(self, value):
self.items.append(value)
if value < self.min:
self.min = value
self.content.append(value)
self.min_array.append(self.min)
def pop(self):
value = self.items.pop()
if value:
if self.content:
value = self.content.pop()
self.min_array.pop()
if self.min_array:
self.min = self.min_array[-1]
return value
else:
print("Stack is empty.")
return 'Empty List. '
def find_min(self):
if self.min_array:
return self.min_array[-1]
else:
return 'No min value for empty list.'
def size(self):
return len(self.items)
return len(self.content)
def isEmpty(self):
return not bool(self.content)
def peek(self):
if self.items:
return self.items[-1]
if self.content:
return self.content[-1]
else:
print('Stack is empty.')
def __repr__(self):
return '{}'.format(self.items)
return '{}'.format(self.content)
if __name__ == '__main__':
stack = Stack()
print("Is the stack empty? ", stack.isEmpty())
print("Adding 0 to 10 in the stack...")
for i in range(10):
stack.push(i)
print("Stack size: ", stack.size())
print("Stack peek : ", stack.peek())
print("Pop...", stack.pop())
print("Stack peek: ", stack.peek())
print("Is the stack empty? ", stack.isEmpty())
print(stack)
q = Stack()
for i in range(15,20):
q.push(i)
for i in range(10,5,-1):
q.push(i)
for i in range(1, 13):
print q.pop(), q.find_min()