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 |
'공부 > 알고리즘 및 기타 공부' 카테고리의 다른 글
Vector2 관련 연산 (C#) (0) | 2023.05.01 |
---|---|
이진 탐색 트리 (C#) (0) | 2023.04.30 |
2진수 ~ 16진수 변환 (C#) (0) | 2023.04.25 |
이진탐색 (C#) 제네릭 (0) | 2023.04.24 |
투 포인터 알고리즘 (C#) (0) | 2023.04.24 |