二叉链中通过根节点 b 来唯一标识二叉树,设计二叉树类,用SetRoot()来设置二叉树根结点求二叉链的括号表示串并调用python代码
时间: 2024-01-23 18:15:48 浏览: 27
以下是设计二叉树类并实现获取二叉链括号表示串的 Python 代码:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def set_root(self, root_val):
self.root = Node(root_val)
def __tree_to_str(self, root):
if not root:
return ""
if not root.left and not root.right:
return str(root.val)
if not root.right:
return str(root.val) + "(" + self.__tree_to_str(root.left) + ")"
return str(root.val) + "(" + self.__tree_to_str(root.left) + ")(" + self.__tree_to_str(root.right) + ")"
def tree_to_str(self):
return self.__tree_to_str(self.root)
# 测试代码
tree = BinaryTree()
tree.set_root('b')
tree.root.left = Node('a')
tree.root.right = Node('c')
tree.root.right.left = Node('d')
tree.root.right.right = Node('e')
print(tree.tree_to_str()) # 输出:b(a)(c(d)(e))
```
在这个示例中,我们首先定义了 `Node` 类来表示二叉树的节点,然后定义了 `BinaryTree` 类来表示二叉树。在 `BinaryTree` 类中,我们实现了 `set_root` 方法来设置二叉树的根节点,并实现了 `tree_to_str` 方法来获取二叉链的括号表示串。注意,我们使用了私有方法 `__tree_to_str` 来递归地获取括号表示串,在外部调用时只需要调用 `tree_to_str` 即可。
最后,我们用测试代码来验证一下我们的实现是否正确。