python - Binary Tree Traversal adding empty values to trees -



python - Binary Tree Traversal adding empty values to trees -

i trying recursively traverse binary tree in preorder, inorder, , postorder. have homecoming list of specified traversal, code preorder traversal below:

class emptyvalue: pass class binarytree: """binary tree class. attributes: - root (object): item stored @ root, or emptyvalue - left (binarytree): left subtree of binary tree - right (binarytree): right subtree of binary tree """ def __init__(self, root=emptyvalue): """ (binarytree, object) -> nonetype create new binary tree given root value, , no left or right subtrees. """ self.root = root # root value if self.is_empty(): # set left , right nothing, # because empty binary tree. self.left = none self.right = none else: # set left , right new empty trees. # note different setting them none! self.left = binarytree() self.right = binarytree() def is_empty(self): """ (binarytree) -> bool homecoming true if self empty. note empty binary trees can have left , right attributes set none. """ homecoming self.root emptyvalue def preorder(self): """ (binarytree) -> list homecoming list of items in tree using *preorder* traversal. """ pre_order_list = [] if self.root none: pass if self.root != none: pre_order_list.append(self.root) if self.left , self.right: homecoming pre_order_list + (self.left.preorder()) + self.right.preorder() else: pass homecoming pre_order_list

i come in next commands command prompt,

tree1 = binarytree(1) tree2 = binarytree(2) tree3 = binarytree(3) tree4 = binarytree(4) tree5 = binarytree(5) tree6 = binarytree(6) tree1.left = tree2 tree1.right = tree3 tree2.left = tree4 tree2.right = tree5 tree3.left = tree6 tree1.preorder()

but since tree3.right none , error:

[1, 2, 4, <class '__main__.emptyvalue'>, <class '__main__.emptyvalue'>, 5, <class '__main__.emptyvalue'>, <class '__main__.emptyvalue'>, 3, 6, <class '__main__.emptyvalue'>, <class '__main__.emptyvalue'>, <class '__main__.emptyvalue'>]

i don't want "<class '__main__.emptyvalue'> " in list, can't seem figure out how ignore items empty value or none.

python tree binary-tree tree-traversal

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -