今日主题:温故而知新。关于树的生成和遍历是好早之前就学习了的知识,最近复习数据结构,重新学习了一遍,发现就是这个简单的知识点帮助我深入理解了递归和对象,(或者是我之前基础太菜了哈哈),好吧,我们来一起复习,一起进步吧~
二叉树的生成用的是层次法,实现时,是用一个list来保存节点值,然后按照层次法把这些点一个个加入树中,然后用前序和中序遍历法来遍历,都是递归实现。递归实现千万别想复杂了,举个前序遍历的栗子:把根节点输出,然后对左子节点调用前序遍历,然后对右子节点调用。好了代码中体会吧
class Node(object):
def __init__(self,data=-1,lchild=None,rchild=None):
self.data=data
self.lchild=lchild
self.rchild=rchild
class BT_Tree(object):
def __init__(self):
self.tree=None
def build_tree(self,nodeList):
if len(nodeList)==0:
return None
root=Node(nodeList[0])
nodes=[root]#把nodes定义为一个node类型的集合
i=1