二叉树python实现
时间: 2023-11-18 09:12:35 浏览: 90
二叉树的实现
以下是一个简单的二叉树 Python 实现:
```python
class Node:
def __init__(self, value=None):
self.value = value
self.left_child = None
self.right_child = None
class BinaryTree:
def __init__(self, root=None):
self.root = Node(root)
def insert(self, value):
if self.root.value is None:
self.root.value = value
else:
self._insert(self.root, value)
def _insert(self, current_node, value):
if value < current_node.value:
if current_node.left_child is None:
current_node.left_child = Node(value)
else:
self._insert(current_node.left_child, value)
elif value > current_node.value:
if current_node.right_child is None:
current_node.right_child = Node(value)
else:
self._insert(current_node.right_child, value)
else:
print("Value already exists in the tree.")
def search(self, value):
return self._search(self.root, value)
def _search(self, current_node, value):
if current_node is None:
return False
elif current_node.value == value:
return True
elif value < current_node.value:
return self._search(current_node.left_child, value)
else:
return self._search(current_node.right_child, value)
```
在这个实现中,我们有两个类:一个节点类和一个二叉树类。每个节点都有一个值、左子节点和右子节点。二叉树类有一个根节点,如果没有指定根节点,则默认为空。我们还定义了一个 insert() 函数来插入新值,和一个 search() 函数来查找一个值。这个实现是一个二叉查找树,可以自动按照节点值的大小来排序。
阅读全文