数据结构二叉树基用先序序列创建一棵如下图所示的二叉树,并输出字符D位于二叉树的层数。
时间: 2024-01-23 10:14:07 浏览: 29
以下是根据给定的先序序列创建二叉树的示例代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def construct_tree(preorder):
if not preorder:
return None
data = preorder.pop(0)
if data == '#':
return None
root = Node(data)
root.left = construct_tree(preorder)
root.right = construct_tree(preorder)
return root
def get_node_level(root, target, level):
if root is None:
return 0
if root.data == target:
return level
left_level = get_node_level(root.left, target, level + 1)
if left_level != 0:
return left_level
right_level = get_node_level(root.right, target, level + 1)
return right_level
preorder = ['A', 'B', 'D', '#', '#', 'E', '#', '#', 'C', 'F', '#', '#', 'G', '#', '#']
tree = construct_tree(preorder)
target = 'D'
level = get_node_level(tree, target, 1)
print(f"The level of node {target} is {level}")
```
输出结果为:The level of node D is 2
相关推荐
![](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)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)