soonspacejs
Version:
soonspacejs 2.x
23 lines (22 loc) • 648 B
TypeScript
import { BaseObjectInfo } from '../Interface';
type BaseId = BaseObjectInfo['id'];
interface MinHeapNode {
nodeIndex: BaseId;
distance: number;
depth: number;
parent: null | BaseId;
children: BaseId[];
}
declare class MinHeap {
min: BaseId | null;
roots: BaseId[];
nodes: Map<BaseId, MinHeapNode>;
constructor();
shift(): string | null;
consolidate(): void;
add(nodeIndex: BaseId, distance: number): void;
update(nodeIndex: BaseId, distance: number): void;
remove(nodeIndex: BaseId): void;
getDistance(nodeIndex: BaseId): number;
}
export { MinHeapNode, MinHeap, };