6 个版本

0.2.2 2023年1月22日
0.2.1 2023年1月5日
0.2.0 2022年12月6日
0.1.2 2022年10月13日
0.1.0 2021年11月6日

119#映射

每月下载量 35

Apache-2.0

69KB
1.5K SLoC

AA 树

Build Status crates.io docs.rs Documentation License MSRV Chat

此crate在Rust中实现了AA树。AA树基本上是一个不允许右子树为红色的红黑树。这导致了实现上的更少复杂性。有关数据结构的更多详细信息,请参阅https://en.wikipedia.org/wiki/AA_tree以获取数据结构的更多信息。

标准库附带了一套良好的数据结构。有关数据结构及其(不)优点的列表,请参阅std::collections,然而,在撰写本文时,并非所有宣传的BTreeMap功能都已实现。平均而言,此AA树实现的速度大约是标准库BTree数据结构的一半。

何时使用AATree而不是std::collections::BTree

  • 您的应用程序不受益于CPU缓存,但受益于更简单的实现
  • 您想找到大于或小于某个值的最大或最小键
  • 您需要一个BST,您可以自由地使用自己的例程进行搜索

何时使用AATree而不是std::vec::Vec

  • 您需要一个排序的数据结构
  • 您需要高效地检查一个键是否包含在内
  • 您需要一个BST,您可以自由地使用自己的例程进行搜索

运行时比较

Insert Operation Comparison Contains Operation Comparison Remove Operation Comparison

版本

作为所有Rustcrate,此crate将遵循语义版本控制指南。但是,增加MSRV(最低支持的Rust版本)不被视为重大更改。

许可

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

依赖项

~0–530KB
~10K SLoC