💡그래프
컴퓨터 공학에서 이야기하는 자료구조 그래프는 마치 거미줄처럼 여러 개의 점이 선으로 이어져 있는 복잡한 네트워크망과 같은 모습을 가지고 있다.
그래프는 여러 개의 점이 서로 복잡하게 연결된 관계를 표현한 자료구조이다. 직접적인 관계가 있는 경우 두 점 사이를 이어주는 선이 있다. 간접적인 관계라면 몇 개의 점과 선에 걸쳐 이어진다. 하나의 점을 그래프에서는 정점(vertex) 이라고 표현하고 하나의 선은 간선이라고 한다.
✓ 알아두어야 할 그래프 용어들
- 진입차수(in-degree) / 진출차수(out-degree): 한 정점에 진입(들어오는 간선) 하고 진출(나가는 간선) 하는 간선이 몇 개인지를 나타낸다.
- 인접(adjacency): 두 정점 간에 간선이 직접 이어져 있다면 두 정점은 인접한 정점이다.
- 자기 루프(self loop): 정점에서 진출하는 간선이 곧바로 자기 자신에게 진입하는 경우 자기 루프를 가졌다고 표현한다. 다른 정점을 거치지 않는 것이 특징이다.
✓ 방향 그래프(Directed Graph)
그림과 같이 한 정점에서 다른 정점으로 가는 간선에 방향이 정해져 있는 그래프를 방향 그래프라고 한다. 정점 B에서 정점 A로 가는 단방향 간선만 있기 때문에 정점 A에서 정점 B로 가는 것은 불가능하다. 반면 정점 A와 C 사이에는 양방향 간선이 있기 때문에 자유롭게 돌아다닐 수 있다. 반대로 간선에 특정한 방향이 없는 그래프도 있는데 이러한 그래프는 무방향 그래프(Undirected Graph)라고 한다.
✓ 순환 그래프(Cyclic Graph)
방향 그래프는 순환이 생길 수 있다.
- 정점 A는 정점 B로 가는 단방향 간선으로 연결되어 있다.
- 정점 B는 정점 C로 가는 단방향 간선으로 연결되어 있다.
- 정점 C는 정점 D로 가는 단방향 간선으로 연결되어 있다.
- 정점 D는 정점 B로 가는 단방향 간선과 정점 E로 가는 단방향 간선으로 연결되어 있다.
정점 A에서 E로 가는 경로를 계산해보면
1. A -> B -> C -> D -> E
2. A -> B -> C -> D -> B -> C -> D -> B -> ...
1번의 경우 처럼도 계산할 수 있지만, D 에서 E로 가지 않고 D -> B -> C를 순환할 수 도 있다. 이렇게 특점 정점에서 시작해, 다시 해당 정점으로 돌아오는 것을 순환이라 하며 이러한 순환을 가진 그래프를 순화 그래프라고 한다.
✓ 단방향 비순환 그래프 (Directed Acylic Graph)
방향성 비순환 그래프는 방향 그래프 중 순환이 발생하지 않는 그래프를 의미한다. 즉, 방향성 비순환 그래프는 한 정점에서 시작해 다시 해당 정점으로 돌아오지 않는 일방향성이라는 특징을 가진다.
'블록체인 > 블록체인이란?' 카테고리의 다른 글
해시테이블 & DHT (Distributed Hash Table) (0) | 2022.06.28 |
---|---|
암호화폐에서의 방향성 비순환 그래프(DAG, Directed Acylic Graph) (0) | 2022.06.27 |
블룸필터(Bloom Filter) 동작 방식, 특징 (0) | 2022.06.27 |
탭 루트(Tab Root), 슈노르 서명 (0) | 2022.06.27 |
[비트코인 자동매매] 하이킨 아시, 파이썬으로 구현하기 (0) | 2022.06.26 |
댓글