python利用递归法采用长子兄弟链存储结构建立树和实力参数的代码
时间: 2024-02-04 22:01:45 浏览: 26
以下是Python代码,使用递归法采用长子兄弟链存储结构建立树和实力参数:
```python
class Node:
def __init__(self, value, first_child=None, next_sibling=None):
self.value = value
self.first_child = first_child
self.next_sibling = next_sibling
def build_tree(data_list):
if not data_list:
return None
value = data_list.pop(0)
first_child = build_tree(data_list)
next_sibling = build_tree(data_list)
return Node(value, first_child, next_sibling)
def print_tree(node, depth=0):
if not node:
return
print(" " * depth + str(node.value))
print_tree(node.first_child, depth + 1)
print_tree(node.next_sibling, depth)
if __name__ == "__main__":
data_list = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"]
root = build_tree(data_list)
print_tree(root)
```
这个代码示例中,我们首先定义了一个Node类,表示树中的一个节点,其中value表示节点的值,first_child表示节点的第一个子节点,next_sibling表示节点的下一个兄弟节点。
接下来,我们定义了build_tree函数,该函数使用递归法来构建树。如果输入的data_list为空,则返回None,否则,我们从data_list中弹出第一个元素作为当前节点的值。我们将递归调用build_tree函数来构建当前节点的第一个子节点和下一个兄弟节点。最后,我们返回当前节点。
最后,我们定义了print_tree函数,该函数使用递归法来打印树。如果输入的节点为空,则返回。否则,我们首先打印当前节点的值,并递归调用print_tree函数来打印当前节点的第一个子节点和下一个兄弟节点。
在主函数中,我们使用一个字符串列表data_list作为输入,构建一棵树,并使用print_tree函数来打印这棵树。