using System.Collections.Generic; using HeuristicLab.Problems.RoutePlanning.RoutingGraph; namespace HeuristicLab.Problems.RoutePlanning.Interfaces { public interface IGraph { void AddVertex(Vertex vertex); Vertex GetVertex(long id); List GetVertices(); 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); } }