现需要采用二叉树存储表示一系列整数并完成相应算法设计。要求完成: (1)写出基于二叉链表的二叉树存储表示结构。 (2)设计算法统计该二叉树中与给定值相等的数据元素的个数。
时间: 2024-05-05 21:21:11 浏览: 29
(1) 基于二叉链表的二叉树存储表示结构:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self, root=None):
self.root = root
def add_node(self, val):
node = TreeNode(val)
if self.root is None:
self.root = node
return
queue = [self.root]
while queue:
curr_node = queue.pop(0)
if not curr_node.left:
curr_node.left = node
return
elif not curr_node.right:
curr_node.right = node
return
else:
queue.append(curr_node.left)
queue.append(curr_node.right)
def inorder_traversal(self, node):
if not node:
return
self.inorder_traversal(node.left)
print(node.val, end=" ")
self.inorder_traversal(node.right)
```
(2) 统计该二叉树中与给定值相等的数据元素的个数算法:
```python
class BinaryTree:
...
def count_val(self, node, val):
if not node:
return 0
count = 0
if node.val == val:
count += 1
count += self.count_val(node.left, val)
count += self.count_val(node.right, val)
return count
```
以上是二叉树的实现与统计算法的 Python 代码,可以根据需要进行修改或调整。