typescript-generic-datastructures
Version:
21 lines (20 loc) • 976 B
TypeScript
import { LinkedList } from '../LinkedList/LinkedList';
import { GraphEdge } from './GraphEdge';
export declare type VertexKeyExtractor<T> = (vertex: T) => string | number;
export declare class GraphVertex<TVertex, TEdge> {
keyExtractor: VertexKeyExtractor<TVertex>;
value: TVertex;
edges: LinkedList<GraphEdge<TVertex, TEdge>>;
constructor(value: TVertex, keyExtractor: VertexKeyExtractor<TVertex>);
addEdge(edge: GraphEdge<TVertex, TEdge>): this;
deleteEdge(edge: GraphEdge<TVertex, TEdge>): void;
getNeighbors(): GraphVertex<TVertex, TEdge>[];
getEdges(): GraphEdge<TVertex, TEdge>[];
getDegree(): number;
hasEdge(requiredEdge: GraphEdge<TVertex, TEdge>): boolean;
hasNeighbor(vertex: GraphVertex<TVertex, TEdge>): boolean;
findEdge(vertex: GraphVertex<TVertex, TEdge>): GraphEdge<TVertex, TEdge> | null;
getKey(): string | number;
deleteAllEdges(): this;
toString(callback: (value: TVertex) => string): string;
}