logo

Python tree

Introduction


In computer science, a tree is a data structure that is modeled after nature. Unlike trees in nature, the tree data structure is upside down: the root of the tree is on top. A tree consists of nodes and its connections are called edges. The bottom nodes are also named leaf nodes. A tree may not have a cycle.

 

tree A tree with eight nodes. The root of the tree (5) is on top.

Python does not have built-in support for trees.

Related Courses:

Binary tree


A binary tree is a data structure where every node has at most two children (left and right child). The root of a tree is on top. Every node below has a node above known as the parent node.We define a class thee which has a left and right attribute. From this binary tree we define the root (top of the three) and a left and right node.

#!/usr/bin/env python
class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = None

root = Tree()
root.data = "root"
root.left = Tree()
root.left.data = "left"
root.right = Tree()
root.right.data = "right"

print(root.left.data)

You could then further create the tree like this:

#!/usr/bin/env python
class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = None

root = Tree()
root.data = "root"
root.left = Tree()
root.left.data = "left"
root.right = Tree()
root.right.data = "right"

root.left.left = Tree()
root.left.left.data = "left 2"
root.left.right = Tree()
root.left.right.data = "left-right"

 

BackNext

2 thoughts on “Python tree


  1. Miguel
    - March 11, 2016

    Hello

    Is there a way to dinamically assign the number of children branches for each parent branch?

    Thanks!

    1. Frank
      - March 12, 2016

      Hi Miguel!

      Yes, it is possible to assign the number of children using a method, but if a tree has more than two children we can no longer call it binary.
      I created some code:

      #!/usr/bin/env python
      class Tree(object):
      def __init__(self):
      self.left = None
      self.child = []
      self.data = []
        def createChildren(self,amount):
      for i in range(0,amount):
      self.child.append(Tree())
        def setChildrenValues(self,list):
      for i in range(0,len(list)):
      self.data.append(list[i])
       root = Tree()
      root.createChildren(3)
      root.setChildrenValues([5,6,7])
       root.child[0].createChildren(2)
      root.child[0].setChildrenValues([1,2])
       # print some values in the tree
      print(root.data[0])
      print(root.child[0].data[0])

Leave a Reply

Login disabled