그래프, 위의 그림이 자료구조의 그래프다. 우리가 흔히 아는 그래프랑은 차원이 다르게 생겼다. 보자마자 머리가 아프게 생겼다. 그래프는 '여러개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조'이다. 그래프는 여러개의 정점
과 간선
으로 구성되어 있다.
정점 : 그래프에 그려진 동그라미 부분, 하나의 대상 그 자체를 나타낸다.
간선 : 정점을 잇는 선들, 대상들이 관계를 가지고 있으면 이어진다.
간선의 표현 방식에 따라서 두가지 그래프로 나뉘어 진다.
가중치 그래프
: 간선에 두 정점 사이의 관계를 표시한 그래프비가중치 그래프
: 관계는 표시하지 않고 간선만 이어 놓은 그래프인접을 행렬로 나타낸 것, 모든 정점들을 행과 열로 나타내고 관계가 있으면 1을 없으면 0을 표기한다.
A : C와 관계를 가지고 있다.
B : A, C와 관계를 가지고 있다.
C : A와 관계를 가지고 있다.
인접 행렬이 대각선 방향으로 대칭을 이뤘을 때 값이 같다면 그 관계는 양방향을 나타낸다.
인접 행렬을 언제 사용하면 좋을까?
각 정점의 관계를 리스트로 나타낸 것, 각 정점마다 하나의 리스트를 가지고 있고 그 리스트에는 인접한 다른 정점들이 담겨 있다.
위 인접행렬을 리스트로 나타낸 것이다.
인접 리스트는 언제 사용하면 좋을까?
트리 구조는 사진과 같이 나무를 거꾸로 뒤집어 둔 것 같은 모양을 하기 때문에 트리 구조라 부른다. 트리구조는 하나 이상의 데이터가 단방향으로 연결되는 계층적 구조이다. 선형의 구조가 아닌 비선형 구조를 가지고 있다.
BST(Binary Search Tree : 이진 탐색 트리)는 트리 구조에서 효율적인 탐색을 위해 사용합니다.
이진트리 : 자식 노드가 최대 두 개인 노드들로 구성된 트리
이진 탐색 트리의 값은 '왼쪽 노드 < 부모 노드 < 오른쪽 노드'의 특징을 가지고 있어야 한다.
여기서 탐색 방법은 3가지의 순회 방식을 가지고 각 순회 방식의 특징은 다음과 같다.
다음과 같은 순회 방식을 취하고 있다. 부모 노드를 언제 조회 하느냐에 따라 명칭을 기억하고 이해한다면 한결 수월해진다.