Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. public class Edge
  4. {
  5. public int weight;
  6. public string movie;
  7. public Node next;
  8. public Edge(Node node, string movie,int weight)
  9. {
  10. next = node;
  11. this.movie = movie;
  12. this.weight = weight;
  13. }
  14. }
  15.  
  16. public class Node
  17. {
  18. public string name;
  19. public Dictionary<string, Edge> neighbours ;
  20. public Node(String name)
  21. {
  22. this.name = name;
  23. neighbours = new Dictionary<string, Edge>();
  24. }
  25.  
  26.  
  27. public void addNode(Node other, string movie)
  28. {
  29. if (!neighbours.ContainsKey(other.name))
  30. {
  31. neighbours.Add(other.name, new Edge(other, movie,1));
  32. }
  33. else
  34. {
  35. neighbours[other.name].weight += 1;
  36. }
  37. }
  38. }
  39. public class Program
  40. {
  41. public static Dictionary<string, Node> allNodes;
  42. public static void Main()
  43. {
  44. allNodes = new Dictionary<string, Node>();
  45.  
  46. AddEdge("node1", "node2", "movie between 1 and 2 ");
  47. AddEdge("node1", "node2", "movie between 1 and 2 dup ");
  48. AddEdge("node2", "node1", "movie between 1 and 2 dup ");
  49. AddEdge("node1", "node3", "movie between 1 and 3 ");
  50. AddEdge("node2", "node3", "movie between 2 and 3 ");
  51. foreach (var item in allNodes){
  52. Console.WriteLine("In the node : "+item.Value.name);
  53. Console.WriteLine("contains :");
  54. foreach(var it in item.Value.neighbours)
  55. {
  56. Console.Write(it.Value.next.name +" movie is "+ it.Value.movie + " weight is "+ it.Value.weight+"\n");
  57. }
  58. }
  59. }
  60. public static void AddEdge(string name1, string name2, string movie)
  61. {
  62. Node node1, node2;
  63. if (!allNodes.ContainsKey(name1))
  64. {
  65. node1 = new Node(name1);
  66. allNodes.Add(name1, node1);
  67. }
  68. else
  69. {
  70. node1 = allNodes[name1];
  71. }
  72. if (!allNodes.ContainsKey(name2))
  73. {
  74. node2 = new Node(name2);
  75. allNodes.Add(name2, node2);
  76. }
  77. else
  78. {
  79. node2 = allNodes[name2];
  80. }
  81. node1.addNode(node2, movie);
  82. node2.addNode(node1, movie);
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement