python用turtle画二叉树_python基础知识学习——二叉树的绘制

基于二叉堆的二叉树绘制方法

注:本文所述方法中的二叉树以链表的形式存储。

1 绘图前准备。

首先你的二叉树要以链表的形式存储,你的节点类中方法的命名要如下所示:

class BinaryTree:

def __init__(self,value):

self.value=value

self.left=None

self.right=None

self.indexInHeap=None

def getIndexHeap(self):

return self.indexInHeap

def setIndexHeap(self,value):

self.indexInHeap=value

def insertLeft(self,newNode):

if self.left==None:

self.left=BinaryTree(newNode)

else:

t=BinaryTree(newNode)

t.left=self.left

self.left=t

def insertRight(self,newNode):

if self.right==None:

self.right=BinaryTree(newNode)

else:

t=BinaryTree(newNode)

t.right=self.right

self.right=t

def getValue(self):

return self.value

def setValue(self,value):

self.value=value

def getRightChild(self):

return self.right

def getLeftChild(self):

return self.left

2、绘图的基本思想

首先通过二叉树的高度,得出最底层满二叉树的叶子节点树,随后将该树满二叉树的叶节点求出,然后层层向上递推,求出所有节点的坐标,然后存为二叉堆数组。同时将你的二叉树存为二叉堆数组,二者一一对应,通过mathplo的annotate进行绘制。

注:有人回复的时候我再介绍详细的思想;

所有涉及的函数以及简单示例如下:

import matplotlib.pyplot as plt

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值