hw7

来源:互联网 发布:图片数据库 编辑:程序博客网 时间:2024/06/06 11:01
class Tree:    def __init__(self,entry,left=None,right=None):        self.entry=entry        self.left=left        self.right=right    def __repr__(self):        args=repr(self.entry)        if self.left or self.right:            args+=',{0},{1}'.format(repr(self.left),repr(self.right))        return 'Tree({0})'.format(args)class BStree(Tree):    passdef square_tree(t):    if t==None:        return     else:        t.entry=t.entry**2        square_tree(t.left)        square_tree(t.right)def height(t):    if t==None:        return 0    else:        return 1+max(height(t.left),height(t.right))def size(t):    if t==None:        return 0    else:        return size(t.left)+size(t.right)+1def find_path(t,x):    if t==None:        return None    elif t.entry==x:        return (x,)    left=find_path(t.left,x);right=find_path(t.right,x)    if left:        return (t.entry,)+left    elif right:        return (t.entry,)+right    else:        return Nonedef preorder(t):    if t!=None:        preorder(t.left)        print(t.entry,end=' ')        preorder(t.right)#t=Tree(2,Tree(7,Tree(2),Tree(6,Tree(5),Tree(11))),Tree(15))#print(t)#preorder(t)def list_to_bst(lst):    if len(lst)==0:        return None    elif len(lst)==1:        return Tree(lst[0])    else:        q=len(lst)//2        lchild=list_to_bst(lst[:q])        rchild=list_to_bst(lst[q+1:])        return Tree(lst[q],lchild,rchild)def find_path_bst(t,val):    lst=list(range(1,10))t=list_to_bst(lst)print(t)preorder(t)

0 0
原创粉丝点击