UNPKG

pinyin-input-method-engine

Version:

汉语拼音输入法引擎 JavaScript 实现。

61 lines (60 loc) 1.29 kB
/** * 比较回调函数 */ 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[]; }