그래프 이론 - BFS/DFS 구현해보기
study/algorithm 2022. 4. 22. 00:50

그래프란? 그래프는 정점(Vertex)들과 간선(Edge)들의 집합으로 구성된 자료구조이다. 정점의 위치나, 간선의 순서들은 그래프를 정의하는 데 사용되지 않는다. 트리도 그래프의 일종이나, 그래프는 트리와 다르게 정점마다 간선을 가지지 않을 수 있다. 그래프는 트리와 다르게 계층 구조의 형태가 아니므로, 역시 노드 간에 부모-자식 계층 관계가 성립하지 않는다. 따라서 루트 노드의 개념도 없다. 그래프의 종류 그래프는 정점이나 간선에 추가적인 속성을 부여하거나, 정점이 존재할 수 있는 방법을 다양하게 함으로써 여러 방식의 그래프로 표현이 가능하다. 방향 그래프( Directed Graph ) 대표적인 그래프의 종류 정점을 잇는 간선들이 방향을 가진다. 위 그림의 첫번째 그래프에서 정점 2와 정점 3을 사..

이진 검색트리(Binary Search Tree) 구현해보기
study/algorithm 2022. 4. 16. 16:30

트리 어떤 계층 구조를 표현하고자 할 때, 트리(Tree)라는 자료구조를 사용할 수 있다. 상위 계층이 아래에 있는 하위 계층들을 포함하며 가지를 치는 모습이 마치 나무와 같다고 하여 트리(Tree)라고 명명되었다 한다. 어떤 데이터로 트리를 구성하느냐, 자료들을 어떻게 배치하느냐에 따라서 다양한 트리를 구성할 수가 있다. 트리의 구성요소 트리는 가질 수 있는 데이터(노드)와 노드들을 연결하는 간선으로 구성된다. 노드가 연결되었을 때, 그 두 노드 간에는 상 하 계층 관계가 성립이 되어야 한다. 트리 용어 부모 노드(parent node) : 연결된 노드 중 상위 노드 하위 노드(child node) : 연결된 노드 중 하위 노드 형제 노드(sibling node) : 부모 노드가 같은 노드 루트 노드(..