Python可视化二叉树遍历
时间: 2023-11-05 08:08:06 浏览: 94
在Python中,我们可以使用turtle库来可视化二叉树的遍历。
首先,我们需要定义一个二叉树节点的类:
```python
class TreeNode:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
```
然后,我们可以定义一个函数来创建一棵二叉树:
```python
def create_tree():
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
return root
```
接下来,我们可以定义一个函数来使用turtle库遍历二叉树并可视化它:
```python
import turtle
def visualize_tree(root):
if not root:
return
turtle.speed(0)
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.setheading(90)
turtle.circle(20)
turtle.write(root.val, align="center", font=("Arial", 12, "normal"))
turtle.penup()
turtle.goto(0, 20)
turtle.pendown()
if root.left:
turtle.goto(-50, 50)
turtle.write("L", align="center", font=("Arial", 12, "normal"))
visualize_tree(root.left)
turtle.penup()
turtle.goto(0, 20)
turtle.pendown()
if root.right:
turtle.goto(50, 50)
turtle.write("R", align="center", font=("Arial", 12, "normal"))
visualize_tree(root.right)
turtle.penup()
turtle.goto(0, 20)
turtle.pendown()
```
这个函数使用turtle库来绘制二叉树节点和指向左右子节点的箭头,并在每个节点上显示节点的值。
最后,我们可以创建一棵二叉树并调用可视化函数:
```python
root = create_tree()
visualize_tree(root)
turtle.done()
```
这将在窗口中显示可视化的二叉树。
阅读全文