python树的打印

学完了如何将树的形式打印出来:如下面的例子:
30
20 80
40 50 10 60
70 90
其实看作一个‘十字’的中心点,然后每一个都是居中打印即可了。
还可以看作栅格投影类似的 ,算出每个间隔是几个空格即可了。
实现(只实现第一种)

import math

import math
def print_tree(array,unit_width = 2):
length = len(array)
depth = math.ceil(math.log2(length + 1))

index = 0

width = 2** depth-1  #行宽,最深是15
for i in range(depth):#控制一行的
    for j in range(2**i):#一行该取几下,取下面的array[index]
        print('{:^{}}'.format(array[index],width * unit_width),end =' ' * unit_width)
        index += 1
        if index >=length:
            break
    width = width//2
    print()

print_tree([30,20,80,40,50,10,60,70,90])

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值