/// /** * @public */ declare class DirectedGraph { /** * 节点不存在错误 */ static VertexNotExistError: { new (message?: string | undefined): { name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; /** * 边不存在错误 */ static EdgeNotExistError: { new (message?: string | undefined): { name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; /** * 顶点 */ private vertices; /** * 边 */ protected edges: Map>; /** * 边数 */ private edgesCount; /** * 获取节点数 */ getEdgesCount(): number; /** * 获取定点数 */ getVerticesCount(): number; /** * 添加顶点 并 添加记录边的map */ addVertex(key: K, value: V): void; /** * 在 srcKey 和 destKey 之间,添加一条边 * 如果边已经存在,则更新权重 */ addEdge(srcKey: K, destKey: K, weight: number): void; /** * 是否存在顶点 key */ hasVertex(key: K): boolean; /** * 是否有一条从 srcKey 到 destKey 的边 */ hasEdge(srcKey: K, destKey: K): boolean; getWeight(srcKey: K, destKey: K): number | undefined; /** * 移除顶点 */ removeVertex(key: K): boolean; /** * 删除边 */ removeEdge(srcKey: K, destKey: K): boolean; /** * 移除和当前key有关的所有边 * @returns 本删除的边数 */ removeEdges(key: K): number; /** * 清空有向图 */ clear(): void; /** * 深度优先遍历 */ traverseDfs(srcKey: K, callback: (key: K, value: V) => void): void; /** * 深度优先遍历实现 */ private traverseDfsimpl; /** * 广度优先遍历 */ traverseBfs(srcKey: K, callback: (key: K, value: V) => void): void; /** * 检查节点是否存在 */ private checkVertexExist; } export default DirectedGraph;