python用列表构建树
时间: 2024-03-24 10:16:45 浏览: 11
可以使用列表来构建一棵树,具体方法如下:
1. 定义节点类 Node:
```python
class Node:
def __init__(self, val):
self.val = val
self.children = []
```
2. 创建节点列表,每个节点的索引即为它的编号,节点的值为它存储的数据,每个节点的子节点为它的编号乘以 2 和它的编号乘以 2 加 1 的节点:
```python
tree = [Node(i) for i in range(10)] # 创建长度为10的节点列表
for i in range(10):
if i * 2 + 1 < 10:
tree[i].children.append(tree[i * 2 + 1])
if i * 2 + 2 < 10:
tree[i].children.append(tree[i * 2 + 2])
```
3. 打印树的结构:
```python
def print_tree(node, level=0):
if node:
print(' ' * level + str(node.val))
for child in node.children:
print_tree(child, level + 1)
print_tree(tree[0])
```
输出:
```
0
1
3
7
8
4
9
0
2
5
1
6
6
2
5
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)