Esempio n. 1
0
        public static List <UnweightedNode <T> > UnweightedDepthFirstSearch <T>(UnweightedNode <T> start)
        {
            List <UnweightedNode <T> >    nodes   = new List <UnweightedNode <T> >();
            HashSet <UnweightedNode <T> > visited = new HashSet <UnweightedNode <T> >();

            DepthFirstSearch.TraverseUnweightedDepthFirstSearch(start, nodes, visited);

            return(nodes);
        }
Esempio n. 2
0
        private static void TraverseWeightedDepthFirstSearch <T>(WeightedNode <T> start, List <WeightedNode <T> > nodes, HashSet <WeightedNode <T> > visited)
        {
            nodes.Add(start);
            visited.Add(start);

            foreach (WeightedNode <T> node in start.GetNeighborsInOrder())
            {
                if (!visited.Contains(node))
                {
                    DepthFirstSearch.TraverseWeightedDepthFirstSearch(node, nodes, visited);
                }
            }
        }