Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. class Node
  8. {
  9. public string NodeName;
  10. public List<Node> ChildNodes = new List<Node>();
  11.  
  12. public Node(string name)
  13. {
  14. NodeName = name;
  15. }
  16. }
  17.  
  18. class DFS
  19. {
  20. static Dictionary<string, Node> nodes = new Dictionary<string, Node>();
  21.  
  22. static void Main(string[] args)
  23. {
  24. string[] settings = Console.ReadLine().Split();
  25. int numNodes = int.Parse(settings[0]);
  26. int numSides = int.Parse(settings[1]);
  27.  
  28. for (int i = 0; i < numNodes; i++)
  29. {
  30. string nodeName = Console.ReadLine();
  31. nodes.Add(nodeName, new Node(nodeName));
  32. }
  33.  
  34. for (int i = 0; i < numSides; i++)
  35. {
  36. string[] pair = Console.ReadLine().Split();
  37. string fromNode = pair[0];
  38. string toNode = pair[1];
  39.  
  40. nodes[fromNode].ChildNodes.Add(nodes[toNode]);
  41. }
  42.  
  43. string[] nodeNames = nodes.Keys.ToArray();
  44. Array.Sort(nodeNames);
  45.  
  46. Search(nodeNames);
  47. }
  48.  
  49. static void Search(string[] graphNodes)
  50. {
  51. List<string> visited = new List<string>();
  52.  
  53. while (graphNodes.Length > 0)
  54. {
  55. Node node = nodes[graphNodes.First()];
  56. if (!visited.Contains(node.NodeName))
  57. {
  58. visited.Add(node.NodeName);
  59.  
  60. }
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement