avl树、间隔树、trie等。python3中实现的各种树。
pytrees的Python项目详细描述
#矮树 啊![](https://img.shields.io/badge/LICENSE-MIT-green.svg) 啊![](https://img.shields.io/badge/python-python3-color.svg)
python3树实现的集合。包括avl树、间隔树等。
##课程
###AVL树
AVL树。 平衡二叉搜索树。保证平衡。
API:
- 插入(self,val)
- 删除(self,key)
- 搜索(self,key)
- 获得深度(自我)
- 预订单(自身)
- 有序(自)
- 邮购(自行)
- countnodes(self)
- buildfromlist(cls,l)
###间隔树
用于检查间隔重叠的扩充数据结构。保证平衡。
API:
- queryoverlap(self,val)
- queryalloverlaps(self,val)
- 插入(self,val)
- 删除(self,key)
- 搜索(self,key)
- 获得深度(自我)
- 预订单(自身)
- 有序(自)
- 邮购(自行)
- countnodes(self)
- buildfromlist(cls,l)
###二叉搜索树
二叉搜索树的简单实现。没有余额担保。
API:
- 插入(self,val)
- 删除(self,key)
- 搜索(self,key)
- 获得深度(自我)
- 预订单(自身)
- 有序(自)
- 邮购(自行)
- countnodes(self)
- buildfromlist(cls,l)
###trie(前缀树)
前缀树。对文本搜索有用。
API:
- 插入(self,word)
- 搜索(self,word)
- startswith(self,前缀)
- findallwordsstartswith(self,前缀)
- buildfromlist(cls,l)
###二叉索引树
fenwick树或二叉索引树是一种数据结构,可以有效地更新元素并计算数字表中的前缀和。
API:
- 更新(self,i,k)–>;将值k更新为索引i
- 前缀(self,i)–>;求和[索引0,索引1,…,索引i]
- 预览(自我)
- GetSize(自身)
- buildfromlist(cls,l)
时间复杂度:更新和前缀和,O(Logn)
空间复杂度:o(n)< >##惯例:
- “key”和“val”在这个实现中几乎相同。使用术语“key”搜索并删除特定节点。在其他情况下使用术语“val”