Files
stree/trees/Siterator.py

23 lines
516 B
Python

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