python--二叉树库函数
binarytree库函数使用
函数名 输入参数 功能
_is_balanced(root) 二叉树的根结点(binarytree.Node类型) 如果二叉树是平衡的则返回树的高度,否则返回-1
_is_bst(root, min_value=float(’-inf’), max_value=float(‘inf’)) root:二叉树的根结点;min_value:最小的结点值;max_value:最大的结点值 如果这是一个二叉搜索树,返回True,否则返回False
_validate_tree_height(height) height:0-9的整数 检查二叉树的高度是否有效
_generate_perfect_bst(height) height:正整数 生成一棵完美的二叉树
_generate_random_node_values(height) height:树的高度 随机返回所有结点值中的某一个
_get_tree_properties(root) root:根结点 返回二叉树的属性
Node(value,left,right) 结点类的构造函数,value:结点值;left和right分别是左右子树,类型为结点类的实例 创建结点实例
len(root) root:根结点 返回树的结点数
root.validate - 检测二叉树是否畸形
root.value - 逐层从左到右返回结点值
root.leaves - 返回二叉树的叶子
root.height - 返回二叉树的高度
root.size - 返回所有结点的个数
root.leaf_count - 返回叶子的数目
root.is_balance - 返回布尔值,检测二叉树是否平衡
root.is_bst - 返回布尔值,检测二叉树是否为二叉搜索树
root.is_max_heap - 返回布尔值,检测二叉树是否为最大堆。关于最大堆和最小堆的含义参考 https://en.wikipedia.org/wiki/Min-max_heap
root.is_min_heap - 返回布尔值,检测二叉树是否为最小堆。
root.is_perfect - 返回布尔值,检测二叉树是否完美。一个二叉树是完美的如果其每一层的结点都被填满。
root.is_strict - 返回布尔值,检测二叉树是否严格。一个二叉树是严格的如果其非叶子结点既有左子结点,又有右子结点。
root,is_complete - 返回布尔值,检测二叉树是否完整。一个二叉树完整:除了最后一层以外,每一层的结点都被填满;最后一层的结点左对齐。
root.min_node_value - 返回所有结点中的最小值。
root.max_node_value - 返回所有结点中的最大值。
root.max_leaf_depth - 返回叶子结点中最大的深度。
root.min_leaf_depth - 返回叶子结点中最小的深度。
root.properties - 返回一个字典,包含二叉树的所有属性
root.inorder - 返回一个中序遍历列表,元素为Node类型。
root.preorder - 返回一个先序遍历列表,元素为Node类型。
root.postorder - 返回一个后序遍历列表,元素为Node类型。
root.levelorder - 返回一个逐层遍历列表
binarytree.build(values) values:列表 从列表元素逐层建立二叉树
binarytree.tree(height, is_perfect) height:高度,默认为3;is_perfect:是否完美,布尔值,默认为False 生成一个随机二叉树,并返回根结点
binarytree.bst(height, is_perfect) height:高度,默认为3;is_perfect:是否完美,布尔值,默认为False 生成一个随机二叉搜索树,并返回根结点
binarytree,heap(height=3, is_max=True, is_perfect=False) is_max:布尔值,是否为最大堆 生成一个堆,并返回根结点
python--二叉树库函数相关推荐
- Python二叉树的三种深度优先遍历
Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...
- Python——标准库函数
Python标准库函数 标准库函数 基本介绍 具体模块函数讲解 math模块 1.ceil() 2.floor() 3.factorial() 4.prod() 5.gcd() 6.isclose() ...
- python 二叉树的序列化和反序列化
python 二叉树的序列化和反序列化 一.leetcode 297 二.为什么要反序列化? 三.反序列化设计 四.序列化设计 五.leetcode 297题 一.leetcode 297 序列化是将 ...
- python二叉树遍历算法_分享python实现的二叉树定义与遍历
这篇文章主要介绍了python实现的二叉树定义与遍历算法,结合具体实例形式分析了基于Python定义的二叉树及其常用遍历操作实现技巧,需要的朋友可以参考下 本文实例讲述了python实现的二叉树定义与 ...
- python re库函数_python re库的正则表达式学习笔记
1. 安装 默认已经安装好了python环境了 re库是python3的核心库,不需要pip install,直接import就行 2. 最简单的模式 字符本身就是最简单的模式 比如:'A', 'I ...
- 使用Python标准库函数os.listdir()时的4个注意事项
好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...
- python 二叉树
概念 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree) 性质 性质1: 在 ...
- python语言的标准库有哪些,python标准库函数有哪些
PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...
- Python二叉树详解笔记
目录 二叉树数据结构 简介 为何选择树 树的主要应用包括: 二叉树的类型 满二叉树(Full binary tree) 完全二叉树(Complete binary tree) 完美二叉树(Perfec ...
- Abaqus安装python第三方库函数
闲话Abaqus二次开发 基于Python对Abaqus进行开发,可以实现批量.快速建模.分析和后处理. Abaqus的二次开发大体上分为子程序开发和GUI开发(用户图形界面开发)两类.本人之后的一系 ...
最新文章
- python大学课程-利用python完成大学刷课(从0到完成的思路)
- [SCOI2007]最大土地面积
- html嵌入原始数据,如何用html和javascript显示原始图像数据?
- MYSQL 5.1自动安装脚本
- idea mac 查找文件快捷键_idea for mac 最全快捷键整理
- RHEL 8 - 用OpenSCAP工具对容器镜像进行漏洞安全合规扫描,并修复
- androidStudio快捷键概览
- Vue报错:npm run start npm ERR! missing script: start
- laraverl笔记
- HDU1282 回文数猜想【回文】
- 3dmax渲染器下载VRay4.1渲染器下载安装教程(支持3dmax2013-2019)
- linux编写的员工管理系统,员工信息管理系统设计与实现(叶晖).doc
- 一文带你玩转 DataStore
- java毕业设计融呗智慧金融微资讯移动平台服务端源码+lw文档+mybatis+系统+mysql数据库+调试
- 一个撒尿只用3秒的男人,成为地球首富后,却要卖豪宅上火星?
- 建议收藏!让造价员疯传的100条知识,没有师傅也入门
- 最快的分布式关系型数据库MEMSQL
- 计算机课程优质课,全国优质课大赛一等奖教学设计 中小学信息技术教学研究工作室...
- mysql迁移时出现错误:INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migrat
- Spring Boot的简单实现
热门文章
- elastic 索引库_使用Elastic Job Agents自动执行Azure SQL数据库索引维护
- 如何使用SQL Server Reporting Services创建图像分类系统
- CSS实现checkbox radio 选中后文本颜色改变
- 【Python 04】Python开发环境概述
- java变量,初始化快,构造函数的执行顺序
- 【PHP】【PHP100改进系列】上传图片水印、缩略图、图片大小预处理类
- windows 下借助7zip实现命令行解压缩
- Android Theme.Dialog 到光 AppCompatDialog
- ASP.NET MVC 利用Razor引擎生成静态页
- Java每天学习一点点 09.10.13