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”

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

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null