在python中通过绘图实现二进制搜索树、avl树、splay树和红黑树。

pybst的Python项目详细描述


关于

pybst在python中实现了二进制树、avl树、splay树和红黑树。此外,pybst提供了一个使用networkx和matplotlib绘制这些树的模块。

提供的树类:

  • bstree-表示不平衡的二叉搜索树
  • avl tree-表示平衡的avl树
  • 显示树-表示调整后的显示树
  • rbtree-表示平衡的红黑树

构造函数

让tree表示上述提供的树类之一。

  • tree()->;创建新的空树
  • 树(seq)->;从seq[(key1,val1),(key2,val2),…,(keyn,valn)创建新的空树

方法

树方法:

  • is_valid()->;如果树是其类型的有效树,则生成true,否则为false。
  • preorder()->;在preorder中生成树中节点的序列。
  • inorder()->;按顺序生成树中节点的序列。
  • postOrder()->;按postOrder生成树中节点的序列。
  • levelOrder()->;按levelOrder生成树中节点的序列。
  • 获取节点(键)->;使用键属性键生成树中的节点。
  • 插入(键,值)<;==>;树[键]=值。将具有键属性键和值属性val的新节点插入树中。
  • insert_from(seq)->;将seq[(key1,val1),(key2,val2),…,(keyn,valn)]中的键和值插入树中。
  • get_max()<;==>;最大值(树)。在树中生成具有最大密钥的节点。
  • get_min()<;==>;最小值(树)。生成树中具有最小键的节点。
  • 获取元素长度(树)。生成树中元素的数目。
  • get_height()->;生成树的高度。
  • 删除(键)<;==>;删除树[键]。从树中删除具有键属性键的节点。
  • delete_from(seq)->;从树中删除具有seq[key1,key2,…,keyn]键的节点。

绘图方法(绘图模块):

  • plot_tree(tree)->;通过使用networkx和matplotlib绘制树,提供树的可视化表示。

依赖关系

pybst不需要树类及其方法本身的外部依赖项。但是,请注意,树状图绘制需要以下软件包:

网络x:http://networkx.github.com/

matplotlib:http://matplotlib.org/

安装

来源:

python setup.py install

使用简易安装:

easy_install pybst

或者下载下载下的一个构建发行版。

文档

请参阅pybst的github存储库,网址为:https://github.com/TylerSandman/PyBST/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java_主路径未指向正确路径   EclipseNullPointerException来自java。lang.j9vm   Java中的图像颜色算法   java测试驱动开发问题   使用Java API将任何文件类型转换为pdf   java检查特定jframe是否从另一个框架打开   java将对象分配给接口变量而不实现接口   java JTable、JLabel及其图标(JLabel不能用图标定制)?   Java netbeans如何显示保存在E分区目录中的映像   java中来自数据库的Json对象   变量Java Passbyreference不工作?   macos“将我的Java应用程序带到MacOSX”:菜单   java JavaFX/Bundling/MacOS商店   java内部类“实例无法访问外部类”数据成员