创建链式存储的二叉树,用户输入字符串,程序按照先序遍历的顺序遍历字符串并建立对应结构的二叉树
时间: 2024-11-30 19:29:16 浏览: 17
创建链式存储的二叉搜索树(Binary Search Tree, BST),通常用于处理字符串元素并且支持高效的查找、插入和删除操作。当用户输入字符串时,我们可以将其转换成字符数组或单个字符逐个处理,然后通过递归的方式构建先序遍历的BST。
首先,我们需要定义一个节点类(TreeNode),包含一个字符值、左子节点和右子节点:
```python
class TreeNode:
def __init__(self, char):
self.char = char
self.left = None
self.right = None
```
接着,我们创建一个函数`insert_string`,用于从输入字符串开始构造BST:
```python
def insert_string(s, node=None):
if not node:
node = TreeNode(s[0])
if len(s) > 1:
insert_string(s[1:], node.right if s[0] > node.char else node.left)
return node
```
用户输入字符串后,可以这样使用这个函数:
```python
input_str = input("请输入字符串:")
root = insert_string(input_str)
```
为了按照先序遍历打印树的结构,你可以添加一个辅助函数:
```python
def pre_order_traversal(node):
if node is not None:
print(node.char, end=" -> ")
pre_order_traversal(node.left)
pre_order_traversal(node.right)
pre_order_traversal(root)
```
阅读全文