pinyin-input-method-engine
Version:
汉语拼音输入法引擎 JavaScript 实现。
61 lines (60 loc) • 1.29 kB
TypeScript
/**
* 比较回调函数
*/
export type TCompareCallback<T> = (a: T, b: T) => number;
/**
* 二叉堆
*
* 根据比较回调函数决定是最大堆还是最小堆,用法:
* - 最小堆 new BinaryHeap<number>((a, b) => a - b);
* - 最大堆 new BinaryHeap<number>((a, b) => b - a);
*/
export declare class BinaryHeap<T> {
private data;
private compare;
constructor(compare: TCompareCallback<T>, data?: T[]);
/**
* 获取元素个数
*/
getSize: () => number;
/**
* 获取当前结点的父结点索引
*/
private getParentIndex;
/**
* 获取其左子结点的索引
*/
private getLeftChildIndex;
/**
* 获取其右子结点的索引
*/
private getRightChildIndex;
/**
* 交换两个位置上的元素
*/
private swap;
/**
* 上浮当前元素到合适的位置
*/
private siftUp;
/**
* 下沉当前元素到合适的位置
*/
private siftDown;
/**
* 向堆中添加新元素
*/
put: (el: T) => void;
/**
* 查看当前堆顶元素
*/
findTop: () => T | null;
/**
* 弹出堆顶元素
*/
pop: () => T | null;
/**
* 转为列表,无序的
*/
toList: () => readonly T[];
}