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 在 数据结构
125KB
2.5K SLoC
循环数据类型
循环数据类型是一系列结构体、枚举、类型和函数,用于创建一系列快速数据类型。
实现
这是通过使用泛型数组和起始与结束点来实现的。因此,在任何数据类型的开始和结束处的插入和删除操作都是 O(1)。在列表中的任何位置读取都是 O(1)。然而,这是以在编译时限制每个数据类型的大小为代价的。
类型
列表
列表模块包含一系列结构体,用于创建循环列表及其实用功能。
循环列表示例
1 ↔ 2 ↔ ... ↔ n
↑ ↑
└─────────────┘
注意:尽管图示使用箭头表示节点/元素之间的关系,暗示着链式节点结构,然而,该包的实现使用数组。
栈
栈模块包含一系列结构体,用于创建栈及其使用循环列表的实用功能。
建议在大多数应用中使用 [Vec
] 而不是 Stack
。因为 [Vec
] 具有与 Stack
相似甚至更好的性能。因此,Stack
应仅在需要严格限制到给定大小或需要 Stack
提供的生命周期功能时使用。
队列
队列模块包含一系列结构体,用于创建队列及其使用循环列表的实用功能。
因此,队列继承了入队和出队的 O(1) 插入和删除操作。