-
[Data Structure] 그래프(Graph)와 트리(Tree)Data Structure 2020. 8. 13. 08:56728x90
Graph란?
- Node와 Node를 연결하는 Edge를 하나로 모아 놓은 비선형 자료구조
- 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조로 네트워크 모델
- 방향성에 따라 Undirected Graph와 Directed Graph로 나누어짐
- Undirected Graph
- 간선을 통해 양방향으로 진행
- 노드A와 노드B를 연결하는 간선이 존재하면 (A, B)로 표현
- Directed Graph
- Edge에 방향성이 존재
- A -> B이면 <A, B>로 표현
- <A, B>와 <B, A>는 다름
- Undirected Graph
- 가중치 그래프(Weighted Graph)
- Edge에 비용이나 가중치가 할당된 그래프로 네트워크라고도함
Graph의 특징
- 그래프는 네트워크 모델
- 2개 이상의 경로가 존재 할 수 있음
- root node가 존재하지 않음
- 부모-자식 관계가 존재하지 않음
- 순회는 DFS 또는 BFS로 이루어짐
- 순환 또는 비순환함
- 간선의 유무는 그래프에 따라 다름
- 인접 리스트와 인접 행렬로 구현할 수 있음
Tree란?
- Node와 Edge로 이루어진 비선형 자료구조로 계층적 모델
- 그래프의 한 종류로 Cycle이 없는 하나의 연결 그래프
Tree의 특징
- 트리는 하나의 Root Node를 가짐
- Root Node는 0개 이상의 자식 노드를 가짐
- 자식 노드도 0개 이상의 자식 노드를 가짐
- 트리는 순환하지 않음
- Node가 N개인 트리는 항상 N-1개의 Edge를 가짐
- 임의의 두 Node간의 경로는 유일함
728x90'Data Structure' 카테고리의 다른 글
[자료구조] 힙(Heap) (0) 2023.12.27 [자료구조] 리스트 (순차 리스트, 연결 리스트) (0) 2023.12.25 [자료구조] 해시 테이블(Hash Table) (0) 2023.09.24 [Data Structure] 스택(Stack)과 큐(Queue) (0) 2020.08.12