参考:www.bilibili.com/video/BV1E4…
实现
# 前序
def arrayToBinary(arr, index=0):
if not isinstance(arr, list) or len(arr) == 0:
print("列表为空~")
return
print(arr[index])
if 2 * index + 1 < len(arr):
arrayToBinary(arr, 2 * index + 1)
if 2 * index + 2 < len(arr):
arrayToBinary(arr, 2 * index + 2)
# 中序
def arrayToBinary2(arr, index=0):
if not isinstance(arr, list) or len(arr) == 0:
print("列表为空~")
return
if 2 * index + 1 < len(arr):
arrayToBinary2(arr, 2 * index + 1)
print(arr[index])
if 2 * index + 2 < len(arr):
arrayToBinary2(arr, 2 * index + 2)
# 后续
def arrayToBinary3(arr, index=0):
if not isinstance(arr, list) or len(arr) == 0:
print("列表为空~")
return
if 2 * index + 1 < len(arr):
arrayToBinary3(arr, 2 * index + 1)
if 2 * index + 2 < len(arr):
arrayToBinary3(arr, 2 * index + 2)
print(arr[index])
# [1,2,3,4,5,6,7]
arrayToBinary([x for x in range(1, 8)])
print("============")
arrayToBinary2([x for x in range(1, 8)])
print("~~~~~~~~~~~~")
arrayToBinary3([x for x in range(1, 8)])