Module stack
Expand source code
#!/usr/bin/env python
from __future__ import print_function
class Stack():
def __init__(self):
self._store = []
self.reset()
def push(self, item):
try:
self._store.append(item)
except Exception as xxx:
print(xxx)
self.cnt = self.cnt+1
def last(self):
xlen = len(self._store)
if xlen == 0: return None
item = self._store[xlen - 1]
return item
def first(self):
xlen = len(self._store)
if xlen == 0: return None
item = self._store[0]
return item
def pop(self):
if len(self._store) == 0: return None
item = self._store.pop(len(self._store) - 1)
return item
def get(self):
if len(self._store) == 0: return None
item = self._store.pop(0)
return item
# Non destructive pop
def pop2(self):
if self.cnt <= 0: return None
self.cnt = self.cnt - 1
item = self._store[self.cnt]
return item
# Non destructive get
def get2(self):
if self.gcnt >= len(self._store): return None
item = self._store[self.gcnt]
self.gcnt = self.gcnt + 1
return item
# Start counters fresh
def reset(self):
self.cnt = 0
self.gcnt = 0
def stacklen(self):
return len(self._store)
def dump(self):
cnt = 0; xlen = len(self._store)
while cnt < xlen:
print(self._store[cnt]); cnt += 1
def show(self):
cnt = len(self._store) - 1
while cnt >= 0:
print(self._store[cnt]); cnt -= 1
if __name__ == "__main__":
print("This module was not meant to operate as main.")
# EOF
Classes
class Stack
-
Expand source code
class Stack(): def __init__(self): self._store = [] self.reset() def push(self, item): try: self._store.append(item) except Exception as xxx: print(xxx) self.cnt = self.cnt+1 def last(self): xlen = len(self._store) if xlen == 0: return None item = self._store[xlen - 1] return item def first(self): xlen = len(self._store) if xlen == 0: return None item = self._store[0] return item def pop(self): if len(self._store) == 0: return None item = self._store.pop(len(self._store) - 1) return item def get(self): if len(self._store) == 0: return None item = self._store.pop(0) return item # Non destructive pop def pop2(self): if self.cnt <= 0: return None self.cnt = self.cnt - 1 item = self._store[self.cnt] return item # Non destructive get def get2(self): if self.gcnt >= len(self._store): return None item = self._store[self.gcnt] self.gcnt = self.gcnt + 1 return item # Start counters fresh def reset(self): self.cnt = 0 self.gcnt = 0 def stacklen(self): return len(self._store) def dump(self): cnt = 0; xlen = len(self._store) while cnt < xlen: print(self._store[cnt]); cnt += 1 def show(self): cnt = len(self._store) - 1 while cnt >= 0: print(self._store[cnt]); cnt -= 1
Methods
def dump(self)
-
Expand source code
def dump(self): cnt = 0; xlen = len(self._store) while cnt < xlen: print(self._store[cnt]); cnt += 1
def first(self)
-
Expand source code
def first(self): xlen = len(self._store) if xlen == 0: return None item = self._store[0] return item
def get(self)
-
Expand source code
def get(self): if len(self._store) == 0: return None item = self._store.pop(0) return item
def get2(self)
-
Expand source code
def get2(self): if self.gcnt >= len(self._store): return None item = self._store[self.gcnt] self.gcnt = self.gcnt + 1 return item
def last(self)
-
Expand source code
def last(self): xlen = len(self._store) if xlen == 0: return None item = self._store[xlen - 1] return item
def pop(self)
-
Expand source code
def pop(self): if len(self._store) == 0: return None item = self._store.pop(len(self._store) - 1) return item
def pop2(self)
-
Expand source code
def pop2(self): if self.cnt <= 0: return None self.cnt = self.cnt - 1 item = self._store[self.cnt] return item
def push(self, item)
-
Expand source code
def push(self, item): try: self._store.append(item) except Exception as xxx: print(xxx) self.cnt = self.cnt+1
def reset(self)
-
Expand source code
def reset(self): self.cnt = 0 self.gcnt = 0
def show(self)
-
Expand source code
def show(self): cnt = len(self._store) - 1 while cnt >= 0: print(self._store[cnt]); cnt -= 1
def stacklen(self)
-
Expand source code
def stacklen(self): return len(self._store)