树是稍微高级一点的数据结构,其特殊的结构使它链表有更好的性能。
树都有一个根节点,就是最上面的那个节点,然后可以由根节点分支形成子节点,一般一个节点有两个子节点,成为二叉树。然后以此类推,子节点可以有自己的子节点。这就形成了一棵树的形状,这就是树。
下面用python来简单的实现呢一下基本的树:
#coding:utf-8
#节点类
class Node(object):
def __init__(self,data):
self.left = None
self.right = None
self.data = data
#树类
class Tree:
def __init__(self,data):
self.root = Node(data)
self.count = 0
def insert(self,oldnode,data):
newNode = Node(data)
node = oldnode
if node.data > data and node.left != None:
self.insert(node.left,data)
if node.data < data and node.right != None :
self.insert(node.right,data)
if node.data > data and node.left == None:
node.left = newNode
if node.data < data and node.right == None:
node.right = newNode
#遍历树
def lookup(self,node):
print node.data
if node.left != None:
self.lookup(node.left)
if node.right != None:
self.lookup(node.right)
if __name__ == '__main__':
t = Tree(5)
t.insert(t.root, 8)
t.insert(t.root, 3)
t.insert(t.root, 12)
t.lookup(t.root)