如何创建平衡二叉树,二叉平衡树算法实现

  如何创建平衡二叉树,二叉平衡树算法实现

  1.生成平衡树的核心是partial_tree方法。

  它将一个序列和数字作为参数,并递归地返回一个序列。第一个是结构树,第二个是书里没有的元素。

  2.实现的总体思路是将每个传入序列分成左半、顶点和右半,直到不能再分为止,然后逐层返回,最后组合成一棵平衡二叉树。

  实例

  list_to_tree方法将有序列表转换成平衡二叉树。

  二叉树分为树顶点、左子树和右子树,其中左子树的值小于树顶点的值,右子树的值大于树顶点的值。

  defmake_tree(入口,左,右):

  #如何创建一棵树

  返回(入口,左侧,右侧)

  国防(树):

  #获取树的顶点

  returntree树[0]

  defleft_branch(树):

  #获取左边的子树

  returntree[1]

  defright_branch(tree):

  #获得正确的子树

  returntree[2]

  deflist_to_tree(元素):

  returnpartial_tree(elements,len(elements))[0]

  defpartial_tree(elts,n):

  ifn==0:

  return((),elts)

  else:

  left_size=(n-1)2

  left _ result=部分树(elts,left_size)

  左_树=左_结果[0]

  non_left_elts=left_result[1]

  right_size=n-(left_size 1)

  this_entry=non_left_elts[0]

  right _ result=partial _ tree(non _ left _ elts[1:],右尺寸)

  右树=右结果[0]

  remaining _ elts=right _ result[1]

  #print(条目,this_entry)

  #print(左_树,左_树)

  #print(右_树,右_树)

  return(make_tree(this_entry,left_tree,right_tree),remaing _ elts)

  if__name__==__main__:

  tree=list_to_tree((1,3,5,7,9))

  打印(生成的平衡二叉树是: ,树)

  打印(树的顶点:,条目(树))

  Print(树的左子树:,left_branch(tree))

  Print(树的右子树:,right_branch(tree))以上是python如何创建平衡二叉树。希望对你有帮助。更多python学习方向:Python基础课程

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: