Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- public class Edge
- {
- public int weight;
- public string movie;
- public Node next;
- public Edge(Node node, string movie,int weight)
- {
- next = node;
- this.movie = movie;
- this.weight = weight;
- }
- }
- public class Node
- {
- public string name;
- public Dictionary<string, Edge> neighbours ;
- public Node(String name)
- {
- this.name = name;
- neighbours = new Dictionary<string, Edge>();
- }
- public void addNode(Node other, string movie)
- {
- if (!neighbours.ContainsKey(other.name))
- {
- neighbours.Add(other.name, new Edge(other, movie,1));
- }
- else
- {
- neighbours[other.name].weight += 1;
- }
- }
- }
- public class Program
- {
- public static Dictionary<string, Node> allNodes;
- public static void Main()
- {
- allNodes = new Dictionary<string, Node>();
- AddEdge("node1", "node2", "movie between 1 and 2 ");
- AddEdge("node1", "node2", "movie between 1 and 2 dup ");
- AddEdge("node2", "node1", "movie between 1 and 2 dup ");
- AddEdge("node1", "node3", "movie between 1 and 3 ");
- AddEdge("node2", "node3", "movie between 2 and 3 ");
- foreach (var item in allNodes){
- Console.WriteLine("In the node : "+item.Value.name);
- Console.WriteLine("contains :");
- foreach(var it in item.Value.neighbours)
- {
- Console.Write(it.Value.next.name +" movie is "+ it.Value.movie + " weight is "+ it.Value.weight+"\n");
- }
- }
- }
- public static void AddEdge(string name1, string name2, string movie)
- {
- Node node1, node2;
- if (!allNodes.ContainsKey(name1))
- {
- node1 = new Node(name1);
- allNodes.Add(name1, node1);
- }
- else
- {
- node1 = allNodes[name1];
- }
- if (!allNodes.ContainsKey(name2))
- {
- node2 = new Node(name2);
- allNodes.Add(name2, node2);
- }
- else
- {
- node2 = allNodes[name2];
- }
- node1.addNode(node2, movie);
- node2.addNode(node1, movie);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement