Python:如何把一个有序整数数组放到二叉树中

  • Post author:
  • Post category:python


class BiTNode:
    def __init__(self):
        self.data = None
        self.lchild = None
        self.rchild = None
        
def arraytotree(arr, start, end):
    if end>=start:
        root = BiTNode()
        mid = (start + end + 1)//2
        root.data = arr[mid]
        root.lchild = arraytotree(arr, start, mid-1)
        root.rchild = arraytotree(arr, mid+1, end)
    else:
        root = None
    return root

def printTreeMidOrder(root):
    if root == None:
        return
    if root.lchild != None :
        printTreeMidOrder(root.lchild)
    print(root.data,end=' ')
    if root.rchild != None :
        printTreeMidOrder(root.rchild)

if __name__ == '__main__':
    arr = [i for i in range(1,10)]
    print('数组:',end='')
    for i in range(9):
        print(arr[i],end=' ')
    root = arraytotree(arr, 0, len(arr)-1)
    print('\n转换成树的中序遍历为:',end='')
    printTreeMidOrder(root)
    

在这里插入图片描述



版权声明:本文为weixin_42712658原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。