본문 바로가기

알고리즘19

[이진트리] map, set c++ 구현 목차 들어가기전 https://be-senior-developer.tistory.com/17 [이진트리] 기본 c++구현 및 이진 트리 순회 설명(전위, 중위, 후위) 목차 이진트리의 정의 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조를 말한다. 이미지출처: https://towardsdatascience.com/8-useful-tree-data-structures-worth-knowing-8532c7231e8c 노드: 트리의 구 be-senior-developer.tistory.com 위 글에서 기본적인 이진트리의 설명을 보고 오시면 이해하는데 도움이 될 것 같습니다! Map에 대한 설명 map은 각 노드가 key와 value로 이루어진 트리입니다. 주요한 특징은 중복을 허용하지 않습.. 2024. 2. 9.
[이진트리] 기본 c++구현 및 이진 트리 순회 설명(전위,중위,후위) 목차 이진트리의 정의각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조를 말한다.            이미지출처: https://towardsdatascience.com/8-useful-tree-data-structures-worth-knowing-8532c7231e8c노드: 트리의 구성요소에 해당하는 A, B, C 와 같은 요소들을 말한다.간선: 노드와 노드를 연결하는 연결선을 말한다,루트노드: 트리 구조에서 최상위에 존재하는  P와 같은 요소를 말한다.단말노드: 아래로 또 다른 노드가 연결되어 있지 않은 E, F, G, H 같은 요소를 말한다.내부노드: 단말노드를 제외한 모든 노드로 A, B와 같은 노드를 말한다.레벨: 트리의 각 층을 숫자로 매긴것을 레벨이라고 한다.높이:트리의 최고 레.. 2024. 2. 9.
[알고리즘] DFS c++ 구현 및 설명 목차 dfs의 정의 및 특징 루트 노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법을 말한다. 그래프의 정점을 발견하는 가장 단순하고 고전적인 방법이다. bfs보다는 비교적 구현이 간단하다. dfs 구현 시 시간 복잡도 인접 리스트: O(V +E) 1 2 3 4 3 4 2 3 4 5 1 이런식으로 각 노드마다 길이가 달라 O(V +E)시간이 걸린다. 희소한 그래프일 시 추천하는 방법이다. 인접 행렬: O(V^2) x 1 2 3 4 5 1 1 1 1 1 1 2 0 1 1 0 1 3 0 0 1 1 0 4 0 1 0 1 1 5 1 0 0 1 1 이런식으로 노드의 관계를 나타내 주어 O(V^2) 시간이 걸린다. 조밀한 그래프일 시 추천하는 방법이다. dfs의 구현 나는 재귀적인 방.. 2024. 2. 7.
728x90