在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/