python建立二叉树
时间: 2023-07-01 14:29:16 浏览: 58
在Python中建立二叉树可以使用节点类的方式实现,例如:
``` python
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
```
然后,我们可以使用递归的方式来构建二叉树,例如:
``` python
def build_tree(arr, root, i, n):
if i < n:
temp = Node(arr[i])
root = temp
root.left = build_tree(arr, root.left, 2 * i + 1, n)
root.right = build_tree(arr, root.right, 2 * i + 2, n)
return root
```
其中,arr是一个列表,表示二叉树的层序遍历结果,root是二叉树的根节点,i表示当前节点在列表中的索引,n表示列表的长度。
例如,我们可以使用以下代码来构建一个二叉树:
``` python
arr = [1, 2, 3, 4, 5, 6, 7]
root = None
root = build_tree(arr, root, 0, len(arr))
```
这样,就成功地构建了一个层序遍历为[1, 2, 3, 4, 5, 6, 7]的二叉树。
相关问题
完全二叉树的建立python
可以使用列表来存储完全二叉树,通过计算节点的下标来进行访问和操作。具体实现可以参考以下代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def build_complete_binary_tree(nums):
n = len(nums)
if n == 0:
return None
root = TreeNode(nums[0])
queue = [root]
i = 1
while i < n:
node = queue.pop(0)
if i < n:
node.left = TreeNode(nums[i])
queue.append(node.left)
i += 1
if i < n:
node.right = TreeNode(nums[i])
queue.append(node.right)
i += 1
return root
```
这个函数接收一个列表作为输入,返回一个完全二叉树的根节点。我们可以通过遍历这个树来访问每一个节点,进行各种操作。
python列表存储结构建立二叉树的代码
下面是使用Python列表存储结构建立二叉树的代码:
```python
class BinaryTree:
def __init__(self, root):
self.tree = [None] * 1000
self.tree[1] = root # 根节点存储在索引为1的位置
def add_node(self, value, parent_value, is_left_child):
index = self.tree.index(parent_value)
if is_left_child:
self.tree[index * 2] = value
else:
self.tree[index * 2 + 1] = value
```
在这个代码中,我们使用一个列表来存储二叉树的节点,根节点存储在索引为1的位置,左子节点存储在索引为父节点索引*2的位置,右子节点存储在索引为父节点索引*2+1的位置。add_node方法用于向二叉树添加节点,需要传入节点的值、父节点的值和节点是左子节点还是右子节点。它会找到父节点在列表中的索引,并根据节点是左子节点还是右子节点将新节点存储在相应的位置。