在二叉链中通过根结点b来唯一标识二叉树并设计二叉树类以及求二叉链的括号表示串并调用python代码
时间: 2024-03-14 14:47:26 浏览: 17
在二叉链中通过根节点 b 来唯一标识二叉树,可以将 b 的左子树看做 b 的左孩子,将 b 的右子树看做 b 的右孩子。因此,我们可以设计一个二叉树类,其中包含根节点 b 和相应的左右子树信息。下面是相应的 Python 代码:
```python
class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
class BinaryTree:
def __init__(self, b=None, left=None, right=None):
if b:
self.root = TreeNode(val=b, left=left, right=right)
else:
self.root = None
# 求二叉树的括号表示串
def tree2str(self):
def dfs(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) + "(" + dfs(root.left) + ")"
return str(root.val) + "(" + dfs(root.left) + ")" + "(" + dfs(root.right) + ")"
return dfs(self.root)
# 构建二叉树
left = TreeNode(val=2)
right = TreeNode(val=3, left=TreeNode(val=4), right=TreeNode(val=5))
tree = BinaryTree(b=1, left=left, right=right)
# 求二叉树的括号表示串
print(tree.tree2str())
```
输出结果为:`1(2)(3(4)(5))`