[Data structure] 그래프(Graph)와 트리(Tree)
그래프 (Graph)
그래프는 정점(Vertex)과 간선(Edge)으로 구성된 데이터 구조.
정점은 객체를 나타내고, 간선은 정점 간의 관계를 나타냄.
그래프는 유향 그래프(Directed Graph)와 무향 그래프(Undirected Graph)로 나눌 수 있음.
특징
정점과 간선: 그래프는 여러 개의 정점과 그 정점들을 연결하는 간선으로 구성됨.
비순환성: 그래프는 사이클이 있을 수도 있고, 없을 수도 있음.
유연한 구조: 정점과 간선의 개수에 제한이 없어서 복잡한 관계를 표현할 수 있음.
트리 (Tree)
트리는 특정한 형태의 그래프.
트리는 계층적 구조를 가지며, 루트 노드(Root Node)에서 시작하여 자식 노드(Child Node)로 분기됨.
트리는 사이클이 없고, 모든 노드가 하나의 루트 노드에 연결되어 있음.
특징
계층 구조: 상위 노드와 하위 노드 간의 계층적 관계를 가짐.
사이클 없음: 트리는 사이클이 없어서 한 경로로만 접근할 수 있음.
정점과 간선: 트리는 V개의 정점을 가지고 E = V - 1개의 간선을 가짐.
그래프와 트리의 차이점
특성 | 그래프 (Graph) | 트리 (Tree) |
---|---|---|
구조 | 정점과 간선으로 구성됨 | 계층적 구조로 구성됨 |
사이클 여부 | 사이클이 있을 수도 있음 | 사이클이 없음 |
연결성 | 정점 간의 관계가 자유로움 | 모든 노드는 하나의 루트에 연결됨 |
간선 수 | E = V + k (k는 간선의 수) | E = V - 1 |
특수한 형태 | 다양한 형태를 가질 수 있음 | 그래프의 특수한 형태임 |