python输入树形数组,输出一个二维数组
时间: 2024-05-13 10:13:41 浏览: 74
好的,这是一个计算机编程问题,可以回答。你可以使用以下代码实现:
```python
def build_tree(arr, i, n):
root = [arr[i], []]
left_child = 2 * i + 1
right_child = 2 * i + 2
if left_child < n:
root[1].append(build_tree(arr, left_child, n))
if right_child < n:
root[1].append(build_tree(arr, right_child, n))
return root
def tree_to_array(root, level, res):
if len(res) < level + 1:
res.append([])
res[level].append(root[0])
for child in root[1]:
tree_to_array(child, level + 1, res)
return res
arr = [4, 2, 6, 1, 3, 5, 7]
tree = build_tree(arr, 0, len(arr))
res = tree_to_array(tree, 0, [])
print(res)
```
这个程序可以将给定的树形数组转换为二维数组。对于输入 `[4, 2, 6, 1, 3, 5, 7]`,输出结果为 `[[4], [2, 6], [1, 3, 5, 7]]`。
阅读全文