程序员算法leetcode

树的实现

2016-11-14  本文已影响24人  苟雨

树是稍微高级一点的数据结构,其特殊的结构使它链表有更好的性能。
树都有一个根节点,就是最上面的那个节点,然后可以由根节点分支形成子节点,一般一个节点有两个子节点,成为二叉树。然后以此类推,子节点可以有自己的子节点。这就形成了一棵树的形状,这就是树。
下面用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)
上一篇下一篇

猜你喜欢

热点阅读