2013-07-18 14:49:38 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# encoding: utf-8
|
|
|
|
|
|
|
|
|
|
|
|
class Stack(object):
|
|
|
|
"""Docstring for Stack """
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
"""@todo: to be defined1 """
|
|
|
|
self.items = []
|
|
|
|
|
2013-07-18 17:43:36 +00:00
|
|
|
def pushFromList(self, list):
|
|
|
|
"""Push the list in the stack
|
|
|
|
|
|
|
|
:param list: a list
|
|
|
|
"""
|
|
|
|
for i in list[::-1]:
|
|
|
|
self.push(i)
|
|
|
|
|
2013-07-18 14:49:38 +00:00
|
|
|
def isEmpty(self):
|
|
|
|
""" Says if the stack is empty
|
|
|
|
:returns: @todo
|
|
|
|
|
|
|
|
"""
|
|
|
|
return self.items == []
|
|
|
|
|
|
|
|
def push(self, item):
|
|
|
|
"""Push an item in the stack
|
|
|
|
|
|
|
|
:param item: @todo
|
|
|
|
:returns: @todo
|
|
|
|
|
|
|
|
"""
|
|
|
|
self.items.append(item)
|
|
|
|
|
|
|
|
def pop(self):
|
|
|
|
"""Getting the last item and remove it
|
2013-07-18 17:43:36 +00:00
|
|
|
:returns: last item
|
2013-07-18 14:49:38 +00:00
|
|
|
|
|
|
|
"""
|
|
|
|
return self.items.pop()
|
|
|
|
|
2013-07-18 17:43:36 +00:00
|
|
|
def peek(self, posi = 0):
|
2013-07-18 14:49:38 +00:00
|
|
|
"""Getting the last item
|
2013-07-18 17:43:36 +00:00
|
|
|
:param posi: which item to peek 0 (last) 1 (the onebefore the last)...
|
|
|
|
:returns: the item
|
2013-07-18 14:49:38 +00:00
|
|
|
|
|
|
|
"""
|
2013-07-18 17:43:36 +00:00
|
|
|
return self.items[-1 - posi]
|
2013-07-18 14:49:38 +00:00
|
|
|
|
2013-07-18 17:43:36 +00:00
|
|
|
def __len__(self):
|
2013-07-18 14:49:38 +00:00
|
|
|
return len(self.items)
|
|
|
|
|
|
|
|
def __str__(self):
|
2013-07-18 17:43:36 +00:00
|
|
|
return str(self.items) + " -> "
|
2013-07-18 14:49:38 +00:00
|
|
|
|
|
|
|
def __add__(self, addList):
|
|
|
|
return self.items + addList
|
|
|
|
|
|
|
|
# -----------------------------
|
|
|
|
# Reglages pour 'vim'
|
|
|
|
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
|
|
|
|
# cursor: 16 del
|