python构建二叉树_BinaryTree:学习二叉树的Python库

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

34109703-4a8810aa-e3b9-11e7-8138-68eec47cfddb.gif

简介:

您是否在为考试、作业或技术面试学习二叉树?

Binarytree是一个Python库,它通过一个简单的API生成二叉树,可以进行检查和操作。它让您跳过繁琐的测试数据设置,直接练习算法。还支持堆和BST(二叉搜索树)。

声明

Binarytree已经更新至4.0版。

请访问发布页(链接:https://github.com/joowani/binarytree/releases)查看最近一次更新详情。

运行环境

Python 2.7, 3.4, 3.5 或 3.6。

安装

从PyPi安装稳定版:

~$ pip install binarytree

直接从GitHub安装最新版:

~$ pip install -e git+git@github.com:joowani/binarytree.git@master#egg=binarytree

根据不同的环境,可能会需要sudo权限。

入门

默认情况下,binarytree使用下面的类作为节点:

866ff53773694927a23919ec90f0491b.png

生成并美化打印各种二叉树:

0c78dfdae3cb415084f683c98ebc551a.png

使用binarytree.Node类来构建自己的树:

fe6f33a7247a4294b8c70a119fc0167e.png

检查树的属性:

230a3984021f4c7bb4995383e2b5b615.png

916027f4f4624ec2b5344cf4ce732730.png

用层序(广度优先)索引来操作节点:

d8ce1a4dbfae41f69663a7d42d8228c5.png

f3e16cad54cf47a6b5e757b782dc6ea1.png

使用不同的算法遍历树:

1048fefea00e4259b9a1993589444a05.png

支持列表:

b9fd190b8bc642b3844f937a13f23021.png

查看文档(http://binarytree.readthedocs.io/en/latest/index.html)了解更多详细信息!

贡献

请在提交pull请求之前查看此页面(链接:http://binarytree.readthedocs.io/en/latest/contributing.html)。谢谢!英文原文:https://github.com/joowani/binarytree

译者:钱利鹏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql union as 注入_sql注入入门 之 mysql 常规注入 [ union方式 ]

1,常规数字型 mysql 实例注入点,如下:1https://www.vuln.com/md_materia_profile_view.php?viewid22,依旧先尝试下经典的单引号,如下,虽然没暴露出明显的数据库报错信息,但我们发现,此时返回的页面已经异常了,经验判断,十有八九是个注入点,先不管那么多,我们继续1https://www.…

gradle docker_带有Gradle的Docker容器分为4个步骤

gradle docker您是否需要通过Java Web应用程序创建Docker映像? 您在使用Gradle吗? 如果是这样,那么您距Docker nivana仅4步之遥。 对于此示例,我将使用一个简单的Spring Boot应用程序。 您可以在我的名为galoshe的Github存储库中…

python socket编程_Python学习记录-socket编程

1. OSI七层模型详解2. Python socket 什么是 Socket? Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 Python 提供了两个级别访问的网络服务: 低级别的网络服…

判断frame是否已创建_类的创建

1. 士兵 许三多 有一把 AK47 2. 士兵 可以开火 3. 枪 能够 发射 子弹 4. 枪 装填 子弹---增加子弹数量 class Gun:def __init__(self,type):self.type type# 刚开始枪没有子弹self.bullet_count 0def __str__(self):return ("%s 已到位" % self.type)def shoot(sel…

@select注解_Mybatis基本知识十七:Mybatis注解式开发-单表注解式开发

上一篇文章:《Mybatis基本知识十六:查询缓存之第三方查询缓存》若文中有纰漏,请多多指正!!!1.前言使用Mybatis进行开发,不仅可以使用mapper配置文件进行开发,也可以使用注解的方式。映射文件中无…

maven servlet配置_第一个Servlet配置

使用IntelliJ IDEA创建一个Simple Maven项目2. Add Framework Support3. 配置Tomcat打开菜单Run -> 选择Edit Configuration 如果侧边栏没有Tomcat,点击“”号 -> 选择“Tomcat Server” -> 选择“Local”,到此画面 ,Apply -> OK4. 在Tomcat…

ad域管理与维护_U-Mail邮件系统LDAP/AD同步极大提升办公效率

每一位办公族,可能都遇到过这样的问题:1、随着信息化高速发展和企业“互联网”的深入,越来越多的办公平台和软件被开发出来,正如移动互联网端APP应用层出不穷一样,给人们带来了极大地便利性。2、凡事有利有弊&#xff…

c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...

正如我前面的文章提到的,C语言虽然已经比较成熟,但是近些年来也是有所发展的——比如增加了许多新特性。遗憾的是,可能因为C语言程序员的工资比不过互联网程序员,国内很多教材比较老旧,几乎不涉及近些年来C语言新增的新…

java ee的小程序_Java EE 8 –为更多设备提供更多应用程序

java ee的小程序如果我不喜欢夏天的一件事,那就是事实是没有太多要分享或谈论的新闻。 谁决定将Java Day Tokyo置于今年的这个无聊的时间里,做得很好,并给了我一个写关于新的和即将到来的Java EE 8规范的博客帖子的机会,其中丰富了…

java随机姓名_Java生成随机姓名、性别和年龄的实现示例

一、定义实体类Person,封装生成的数据package net.dc.test;public class Person {private String name;private String sex;private int age;public String getName() {return name;}public void setName(String name) {this.name name;}public String getSex() {r…

matlab 图像 幅度谱 低通滤波_数字图像处理期末复习2018-12-21

数字图像处理期末复习2018-12-21愉快先生0.204字数 5547 阅读 18342018-12-22 19:35(数字图像冈萨雷斯第二版教材)一、基本原理图像的读取、存储操作:i imread(filename) ; imwrite(i,’image.jpg’); 图像显示的⽅法及区别:imshow(i); imshow(i,[]);%0…

大话oraclerac集群、高可用性、备份与恢复_Oracle RAC结构

Oracle RAC结构Oracle真正集群的出现是在Oracle公司收购Rdb并吸收了相关技术优势后,才正在推出了属于自己的RAC集群解决方案。RAC​和集群分类章节提到的集群系统有很多相似之处,从下图我们大概了解一下RAC集群的层次结构和所需的软硬件环境。Oracle Rac…

java obix_obix协议在java中的配置和使用详解

前言本文主要给大家介绍的是关于obix协议在java中的配置和使用,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。什么是 oBIX?简单来讲,obix是一种 XML 通讯协议,使用Http Request/Post方式进行数据通…

java7和java8切换_仍不切换到Java 8的6个理由

java7和java8切换Java 8很棒。 期。 但是……在我们有机会玩耍并玩弄它之后,就该退出了,避免吃盐。 所有的好东西都是有代价的,在这篇文章中,我将分享Java 8的主要痛点。请确保在升级和释放7之前您已经意识到了这些痛点。 1.并行…

python求阶乘之和_python计算阶乘前n项和

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 知道公式后就很简单了,利用for循环,第几行i1就等于几,当然python中是没有…

您需要了解的有关UI测试的所有信息

让我们从一个问题开始。 用户在网站上进行互动的第一件事是什么? 接口,当然。 网站的外观是在用户身上产生“第一印象”的第一件事。 交互式Web应用程序可以为用户带来成败,这就是为什么越来越多的人选择对其Web应用程序进行UI测试的原因。 …

python合并word单元格_python之DataFrame实现excel合并单元格_python

这篇文章主要为大家详细介绍了python之DataFrame实现excel合并单元格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要…

java做服务器端给客户端传数据包_java 服务器怎样给客户端传输数据

展开全部服务器端源码:import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.Se…

pooled-jms_Hibernate隐藏的宝石:pooled-lo优化器

pooled-jms介绍 在这篇文章中,我们将揭示一个序列标识符生成器,​​它结合了标识符分配效率和与其他外部系统的互操作性(同时访问底层数据库系统)。 传统上,有两种序列标识符策略可供选择。 序列标识符,对…

apache geode项目结构_Apache Flink-基于Java项目模板创建Flink应用(流计算和批计算)...

Apache Flink创建模板项目有2种方式:1. 通过Maven archetype命令创建;2. 通过Flink 提供的Quickstart shell脚本创建;关于Apache Flink的环境搭建,请参考相关链接:Apache Flink快速入门-基本架构、核心概念和运行流程A…