binary tree python代码
二叉树Python代码
二叉树是一种非常常见的数据结构,它的应用非常广泛,比如在搜索引擎中,就会用到二叉树来存储和查询网页信息。在Python中,我们可以通过代码来实现二叉树。
二叉树定义
二叉树是一种树形结构,其中每个节点最多只有两个子节点,分别称为左子节点和右子节点。二叉树的特点是每个节点都不会有多于两个的子节点,同时节点的左子节点小于等于该节点,右子节点大于等于该节点。
二叉树的实现
在Python中,我们可以使用类来实现二叉树。首先,我们需要定义一个节点类:
```python
class TreeNode:
def __init__(self, value=None, left=None, right=None):
self.value = value
self.left = left
self.right = right
```
其中,value表示节点的值,left和right分别表示节点的左右子节点。
接下来,我们可以定义一个二叉树类:
```python
class BinaryTree:
def __init__(self, root=None):
= root
```
其中,root表示二叉树的根节点。
接着,我们可以实现二叉树的插入操作。插入操作可以分为两种情况:如果插入节点的值小于当前节点的值,就需要将其插入到当前节点的左子树中;如果插入节点的值大于当前节点的值,就需要将其插入到当前节点的右子树中。具体实现如下:
```python
def insert(self, value):
if :
= TreeNode(value)
else:
self._insert(value, )
def _insert(self, value, node):
if value < node.value:
if not node.left:
node.left = TreeNode(value)
else:
self._insert(value, node.left)
else:
if not node.right:
node.right = TreeNode(value)
else:
self._insert(value, node.right)
```
其中,insert函数实现了对根节点的插入操作;_insert函数则实现了对非根节点的插入操作。
我们可以实现二叉树的遍历操作。二叉树的遍历分为三种:前序遍历、中序遍历和后序遍历。具体实现如下:
```python
def preorder_traversal(self, node):
if not node:
return
print(node.value, end=' ')
self.preorder_traversal(node.left)
self.preorder_traversal(node.right)
def inorder_traversal(self, node):
if not node:
快速排序python实现 return
self.inorder_traversal(node.left)
print(node.value, end=' ')
self.inorder_traversal(node.right)
def postorder_traversal(self, node):
if not node:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论