gpt4 book ai didi

python - 从 python 中的列表构造二叉树的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:57 35 4
gpt4 key购买 nike

假设每个节点都有self.leftself.rightself.data,那么构建二叉树的最佳方式是什么,不是二叉搜索树(BST),来自每个级别给出数字的列表。其中第一个数字是 1 级,接下来的 2 个是 2 级,接下来的 4 个是 3 级,依此类推。例如

input: [3,5,2,1,4,6,7,8,9,10,11,12,13,14] 

构造一棵树:

          3
/ \
5 2
/\ /\
1 4 6 7
/\ /\ /\ /\
8 9 10 11 12 13 14

一种解决方案是:

for node at index i,
left child index = 2i+1
right child index = 2i+2

想知道是否还有其他可能的方法

最佳答案

pip install drawtree可以直接使用这个工具:drawtree,如果你对它的实现感兴趣可以引用这个源码:https://github.com/msbanik/drawtree .

对于问题中的情况:

from drawtree import draw_level_order
draw_level_order('[3,5,2,1,4,6,7,8,9,10,11,12,13,14]')

你会得到如下的文本图:

               3
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
5 2
/ \ / \
/ \ / \
/ \ / \
1 4 6 7
/ \ / \ / \ /
8 9 / \ / \ 14
10 11 12 13

另外,你可以试试Graphviz .

关于python - 从 python 中的列表构造二叉树的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43097045/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com