///
/**
* @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;