Cosmetics and Siterator

This commit is contained in:
2020-05-19 16:38:59 +02:00
parent 68512b3d75
commit 95a6901f47
3 changed files with 151 additions and 50 deletions

22
trees/Siterator.py Normal file
View File

@@ -0,0 +1,22 @@
from trees.Snode import Snode
class Siterator:
"""Implements an inorder iterator
"""
def __init__(self, tree: Snode):
self._stack = []
self._push(tree)
def hasNext(self) -> bool:
return len(self._stack) > 0
def _push(self, node: Snode):
while (node is not None):
self._stack.insert(0, node)
node = node.get_down()
def next(self) -> Snode:
node = self._stack.pop()
self._push(node.get_up())
return node