python中利用双亲存储结构建立树并打印的代码
时间: 2023-12-03 14:43:36 浏览: 25
下面是使用双亲存储结构建立树并打印的Python示例代码:
```python
class Node:
def __init__(self, data, parent=None):
self.data = data
self.parent = parent
self.children = []
def add_child(self, node):
node.parent = self
self.children.append(node)
def print_tree(self, level=0):
print(" " * level + "|--", self.data)
for child in self.children:
child.print_tree(level + 1)
# 示例
root = Node("A")
b = Node("B")
c = Node("C")
d = Node("D")
e = Node("E")
f = Node("F")
g = Node("G")
root.add_child(b)
root.add_child(c)
b.add_child(d)
b.add_child(e)
c.add_child(f)
c.add_child(g)
root.print_tree()
```
输出结果:
```
|-- A
|-- B
|-- D
|-- E
|-- C
|-- F
|-- G
```
此代码中,`Node`类表示树中的一个节点,它包含一个数据元素、指向父节点的指针和一个子节点列表。`add_child`方法用于在当前节点下添加一个子节点,并将该子节点的父节点指针指向当前节点。`print_tree`方法用于递归地打印整棵树,从根节点开始,先打印当前节点的数据元素,然后递归打印每个子节点。`level`参数用于指定当前节点所处的层数,以便在打印时缩进。