python画二叉树

简介: 笔记

利用python自带的turtle库来画二叉树


1.第一部分

二叉树的画法主要是利用递归的方法来画,其中有用的深度优先算法的思想。

步骤也不复杂,先画左边,然后画右边。

2.代码

import turtle
def draw(strength):
  if strength>0:
    turtle.fd(strength)
    turtle.rt(20)     #右转20°
    draw(strength-5)   #每一节树枝比前一节短5  
    turtle.lt(40)    #之前右转了20°,所以这里要左转40°。
    draw(strength-5)
    if(strength<25):
      turtle.pencolor("green")   #如果树枝的长度小于25,那么就设置画笔的颜色为绿色
    turtle.rt(20)
    turtle.backward(strength)     #放回
    turtle.pencolor("black")
if main():
  strenght = 80      #设置树的长度
  turtle.penup()    
  turtle.goto(-50,-100)    #向下移动画笔
  turtle.pendown()
  turtle.letf(90)    #开始画笔的方向为朝右,转到向上
  draw(strength)
  turtle.exitonclick()   #设置画完后不立即结束程序

程序运行效果图,画了一大半,还要一小半没画出来,

5.png

Thank for your reading!

公众号:FPGA之旅

目录
相关文章
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
206 6
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
250 5
|
Python
【Leetcode刷题Python】114. 二叉树展开为链表
LeetCode上114号问题"二叉树展开为链表"的Python实现,通过先序遍历二叉树并调整节点的左右指针,将二叉树转换为先序遍历顺序的单链表。
187 3
【Leetcode刷题Python】114. 二叉树展开为链表
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
456 7
|
存储 算法 Python
【Leetcode刷题Python】297. 二叉树的序列化与反序列化
LeetCode第297题"二叉树的序列化与反序列化"的Python语言解决方案,包括序列化二叉树为字符串和反序列化字符串为二叉树的算法实现。
174 5
|
Python
【Leetcode刷题Python】236. 二叉树的最近公共祖先
LeetCode上236号问题"二叉树的最近公共祖先"的Python实现,使用递归方法找到两个指定节点的最近公共祖先。
199 5
|
Python
【Leetcode刷题Python】199. 二叉树的右视图
LeetCode上199号问题"二叉树的右视图"的Python实现,通过深度优先搜索算法按层序从右向左访问节点,以获取每层的最右边节点的值。
117 4
|
Python
【Leetcode刷题Python】剑指 Offer 32 - II. 从上到下打印二叉树 II
本文提供了一种Python实现方法,用于层次遍历二叉树并按层打印结果,每层节点按从左到右的顺序排列,每层打印到一行。
182 3
|
Python
【Leetcode刷题Python】105. 从前序与中序遍历序列构造二叉树
LeetCode上105号问题"从前序与中序遍历序列构造二叉树"的Python实现,通过递归方法根据前序和中序遍历序列重建二叉树。
228 3
|
存储 Python
【Leetcode刷题Python】103. 二叉树的锯齿形层序遍历
LeetCode上103号问题"二叉树的锯齿形层序遍历"的Python实现,使用了双端队列来实现层与层之间交替的遍历顺序。
99 3

推荐镜像

更多