输出利用二叉树存储的普通树的度代码
时间: 2024-04-26 10:05:43 浏览: 33
以下是利用二叉树存储普通树的度的代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.child = None
self.sibling = None
def create_tree():
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
node4 = TreeNode(4)
node5 = TreeNode(5)
node6 = TreeNode(6)
node7 = TreeNode(7)
root.child = node2
node2.sibling = node3
node2.child = node4
node4.sibling = node5
node3.child = node6
node6.sibling = node7
return root
def get_degree(root):
if root is None:
return 0
degree = 0
child = root.child
while child is not None:
degree += 1
child = child.sibling
return degree
def binary_tree_degree(root):
if root is None:
return
print("Node:", root.val, "Degree:", get_degree(root))
binary_tree_degree(root.child)
binary_tree_degree(root.sibling)
if __name__ == '__main__':
root = create_tree()
binary_tree_degree(root)
```
上述代码中,我们定义了一个 `TreeNode` 类来表示普通树中的每个节点。在 `create_tree()` 函数中,我们手动创建了一棵树,并将其返回根节点。接下来,我们定义了一个 `get_degree()` 函数,该函数用于计算普通树中一个节点的度数。这个函数接受一个节点作为参数,并使用一个循环来遍历节点的所有子节点,并计算子节点的数量。
最后,我们定义了一个 `binary_tree_degree()` 函数来遍历整棵树,并打印每个节点的度数。这个函数首先打印当前节点的度数,然后递归遍历当前节点的子节点和兄弟节点。
当我们运行这个程序时,它将输出以下内容:
```
Node: 1 Degree: 2
Node: 2 Degree: 2
Node: 4 Degree: 1
Node: 5 Degree: 0
Node: 3 Degree: 2
Node: 6 Degree: 1
Node: 7 Degree: 0
```
这表明根节点的度数为 2,它有两个子节点。第一个子节点的度数也为 2,它有两个子节点。第二个子节点的度数为 0,它没有子节点。第二层的节点同理。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)