Esempio n. 1
0
        public AdjacencyList <T, TNode> Reverse()
        {
            var result = new AdjacencyList <T, TNode>(_nodeFactory);

            foreach (var adjacency in _adjacencies.Values)
            {
                foreach (var edge in adjacency)
                {
                    result.AddEdge(edge.Target.Value, edge.Source.Value, edge.Weight);
                }
            }

            return(result);
        }
Esempio n. 2
0
        public AdjacencyList <T, TResultNode> Transform <TResultNode>(Func <int, T, TResultNode> nodeFactory)
            where TResultNode : Node <T>
        {
            var result = new AdjacencyList <T, TResultNode>(nodeFactory);

            foreach (var adjacency in _adjacencies.Values)
            {
                foreach (var edge in adjacency)
                {
                    result.AddEdge(edge.Source.Value, edge.Target.Value, edge.Weight);
                }
            }

            return(result);
        }