编一个程序,读入用户输入的一串先序遍历字符串,根据输入建立一颗二叉树,并输出该二叉树的层次遍历序列
时间: 2023-06-04 15:05:26 浏览: 182
根据带空指针的先序遍历结果建立二叉树
好的,我可以帮你编写这个程序。以下是程序代码:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class Tree:
def __init__(self, val):
self.root = Node(val)
def buildTree(self, nodes):
if not nodes:
return None
root_val = nodes.pop(0)
if root_val == "#":
return None
root = Node(root_val)
root.left = self.buildTree(nodes)
root.right = self.buildTree(nodes)
return root
def levelOrder(self):
queue = [self.root]
res = []
while queue:
node = queue.pop(0)
if node:
res.append(node.val)
queue.append(node.left)
queue.append(node.right)
return res
if __name__ == "__main__":
nodes = input().strip().split()
tree = Tree(nodes[0])
root = tree.buildTree(nodes[1:])
res = tree.levelOrder()
print(' '.join(res))
```
这个程序可以读入用户输入的一串先序遍历字符串,建立一颗二叉树,并输出该二叉树的层次遍历序列。你只需要输入先序遍历字符串,程序就会返回层次遍历序列。如果你有其他问题,可以继续问我。
阅读全文