#data #queue #cyclic #stack #series #type #list

cyclic_data_types

循环数据类型是一系列结构体、枚举、类型和函数,用于创建一系列快速数据类型。

4 个版本

0.2.3 2023 年 1 月 18 日
0.2.2 2023 年 1 月 17 日
0.2.1 2023 年 1 月 16 日
0.2.0 2023 年 1 月 16 日

#2119数据结构

MIT 许可证

125KB
2.5K SLoC

循环数据类型

循环数据类型是一系列结构体、枚举、类型和函数,用于创建一系列快速数据类型。

实现

这是通过使用泛型数组和起始与结束点来实现的。因此,在任何数据类型的开始和结束处的插入和删除操作都是 O(1)。在列表中的任何位置读取都是 O(1)。然而,这是以在编译时限制每个数据类型的大小为代价的。

类型

列表

列表模块包含一系列结构体,用于创建循环列表及其实用功能。

循环列表示例

 1 ↔ 2 ↔ ... ↔ n
 ↑             ↑
 └─────────────┘

注意:尽管图示使用箭头表示节点/元素之间的关系,暗示着链式节点结构,然而,该包的实现使用数组。

栈模块包含一系列结构体,用于创建栈及其使用循环列表的实用功能。

建议在大多数应用中使用 [Vec] 而不是 Stack。因为 [Vec] 具有与 Stack 相似甚至更好的性能。因此,Stack 应仅在需要严格限制到给定大小或需要 Stack 提供的生命周期功能时使用。

队列

队列模块包含一系列结构体,用于创建队列及其使用循环列表的实用功能。

因此,队列继承了入队和出队的 O(1) 插入和删除操作。

无运行时依赖