python递归存储树
时间: 2023-09-02 19:11:58 浏览: 49
在 Python 中,我们可以通过类和递归的方式来实现树的存储。
首先,我们需要定义一个树节点的类:
```python
class TreeNode:
def __init__(self, value):
self.value = value
self.children = []
```
其中,`value` 表示节点的值,`children` 表示该节点的子节点列表。
然后,我们可以通过递归的方式来构建树:
```python
def build_tree(data):
if not data:
return None
root = TreeNode(data[0])
for value in data[1:]:
child = build_tree(value)
root.children.append(child)
return root
```
其中,`data` 表示树的数据,它是一个列表,每个元素都是一个子树的数据。首先判断 `data` 是否为空,如果是,则返回 `None`。否则,取 `data` 的第一个元素作为根节点的值,创建根节点。然后,遍历 `data` 中剩余的元素,对每个元素递归调用 `build_tree` 函数,得到一个子节点,将其添加到根节点的子节点列表中。最后,返回根节点。
例如,我们可以使用以下代码创建一个树:
```python
data = [1, [2, [4], [5]], [3, [6], [7]]]
root = build_tree(data)
```
这样就创建了以下的树:
```
1
/ \
2 3
/ \ / \
4 5 6 7
```
当然,我们可以根据实际情况来修改节点类和递归函数的实现,以适应不同的树结构需求。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)