공부/알고리즘 및 기타 공부
노드와 양방향 그래프 표현 (C#)
ENUM01
2023. 4. 27. 01:39
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
public class Node
{
public int Value;
public HashSet<Node> Neighbors;
public Node(int value)
{
Value = value;
Neighbors = new HashSet<Node>();
}
public void AddNeighbor(Node neighbor)
{
Neighbors.Add(neighbor);
}
}
public class Graph
{
public Dictionary<int, Node> Nodes;
public Graph()
{
Nodes = new Dictionary<int, Node>();
}
public void AddNode(int value)
{
if (!Nodes.ContainsKey(value))
Nodes.Add(value, new Node(value));
}
public void AddEdge(int fromValue, int toValue)
{
Node fromNode = Nodes[fromValue];
Node toNode = Nodes[toValue];
if (!fromNode.Neighbors.Contains(toNode))
fromNode.AddNeighbor(toNode);
if (!toNode.Neighbors.Contains(fromNode))
toNode.AddNeighbor(fromNode);
}
}
|
cs |