Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node(object):
- def __init__(self, value, parent = None):
- self._value = value
- self._children = []
- self._parent = parent
- def get_value(self):
- return self._value
- def get_children(self):
- return self._children
- def get_parent(self):
- return self._parent
- def set_parent(self, parent_node):
- self._parent = parent_node
- def add_child(self, new_node):
- self._children.append(new_node)
- def is_leaf(self):
- if self._children == []:
- return True
- else:
- return False
- def is_root(self):
- if self._parent == None:
- return True
- else:
- return False
- def depth(self):
- if self.is_root() == False:
- return 1 + self._parent.depth()
- else:
- return 1
- def dfs(self):
- print self._value
- if self.is_leaf():
- pass
- else:
- for child in self._children:
- child.dfs()
- def height(self):
- tmp = []
- if self.is_leaf():
- return 1
- else:
- for child in self._children:
- tmp.append(child.height())
- return 1 + max(tmp)
- class Tree(object):
- def __init__(self, root = Node(0)):
- self._root = root
- def add_node(self, node, new_node):
- node.add_child(new_node)
- new_node.set_parent(node)
- def height(self):
- return self._root.height()
- if __name__ == '__main__':
- koren = Node(1)
- stablo = Tree(koren)
- n1 = Node(2)
- n2 = Node(3)
- n3 = Node(4)
- n4 = Node(5)
- stablo.add_node(koren, n1)
- stablo.add_node(koren,n2)
- stablo.add_node(n2,n3)
- stablo.add_node(n3,n4)
- print stablo.height()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement