using System.Collections.Generic; namespace HeuristicLab.Problems.RoutePlanning.Graph { public interface IGraph { void AddVertex(Vertex vertex); Vertex GetVertex(long id); void AddEdge(long startId, long endId); void AddEdge(Edge edge); void RemoveEdge(long startId, long endId); bool HasEdge(long startId, long endId); Edge GetEdge(long startId, long endId); List> GetEdges(long vertexId); List> GetInEdges(long vertexId); List> GetOutEdges(long vertexId); Dictionary GetNeighborsWithWeight(long id); Dictionary GetNeighborsWithWeightReversed(long id); int GetOutDegree(long id); int GetInDegree(long id); float EstimatedCosts(long sourceId, long targetId); } }