clrs
简介
提供基础的数据结构和算法
组件接口
heap.gs
最大堆
参考Python heapq,提供作用于array的堆操作函数。
函数原型 | 函数作用 |
---|---|
void heapify(array arr, function predicate = nil) | 在O(N)时间内将数组转换成堆 |
void push(array arr, mixed item, function predicate = nil) | 将元素加入堆中,并保持堆的性质 |
mixed pop(array arr, function predicate = nil) | 弹出并返回堆的最大值,并保持堆的性质 |
mixed remove(array arr, int pos, function predicate = nil) | 从指定位置删除数据,并返回删除的数据 |
void heap_sort(array arr, function predicate = nil) | 堆排序,时间复杂度为O(N * log N) |
类
Deque
双端队列
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|
成员方法
函数原型 | 函数作用 |
---|---|
void push_front(mixed item) | 在前端插入元素 |
void push_back(mixed item) | 在尾端插入元素 |
mixed pop_front() | 删除并返回队首元素 |
mixed pop_back() | 删除并返回队尾元素 |
mixed front() | 返回队首元素 |
mixed back() | 返回队尾元素 |
int size() | 获取队列元素数量 |
MinStack
最小栈
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|
成员方法
函数原型 | 函数作用 |
---|---|
mixed top() | 获取栈顶元素 |
void push(mixed item) | 向栈中添加元素 |
void pop() | 弹出栈顶元素 |
mixed get_min() | 获取最小元素 |
int size() | 获取栈大小 |
OrderedSet
有序集合
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|
成员方法
函数原型 | 函数作用 |
---|---|
void add(mixed key, mixed value = nil) | 向集合中添加元素,如果元素已存在集合中则覆盖之 |
bool remove(mixed key) | 从集合中移除指定元素 |
mixed query(mixed key) | 从集合中取出元素映射的值 |
mixed lower_bound(mixed key) | 在集合中取出不小于key的最小元素 |
mixed upper_bound(mixed key) | 在集合中取出大于key的最小元素 |
mixed get_min() | 取出集合中的最小元素 |
mixed get_max() | 取出集合中的最大元素 |
int size() | 返回集合大小 |
void empty() | 清空集合 |
PriorityQueue
优先队列