본문 바로가기

알고리즘16

[알고리즘] 순회(전위 순회, 중위 순회, 후위 순회) 이진탐색트리의 추가 부분 입니다. [알고리즘] 이진탐색트리 이진탐색트리? 이진 방식의 탐색을 하기 위한 구조 입니다. 이진탐색트리에서 모든 노드는 아래의 규칙을 가지고 있습니다. 모든 노드의 key는 중복이 되지않습니다. 왼쪽방향의 자식 노드는 부 rhksgml78.tistory.com 1. 전위 순회 (Preorder Traversal) 함수내에서 재귀로 내려가기전 출력합니다. (두개의 서브트리 순회 전) 1. 현재 노드를 출력(처리). 2. 왼쪽 노드를 방문 3. 오른쪽 노드를 방문 void BST_PreOrder(Node* tree, vector& pre) // 전위순회 { if (tree == NULL) // 재귀함수는 항상 탈출조건이 위에있어야함 return; pre.push_back(tree-.. 2023. 4. 27.
[알고리즘] 이진탐색트리 이진탐색트리? 이진 방식의 탐색을 하기 위한 구조 입니다. 이진탐색트리에서 모든 노드는 아래의 규칙을 가지고 있습니다. 모든 노드의 key는 중복이 되지않습니다. 왼쪽방향의 자식 노드는 부모값보다 작다. 오른쪽방향의 자식 노드는 부모값보다 크다. 각각의 노드들이 중앙 요소가 되며 임의의 어떤 노드의 왼쪽 서브트리에는 해당 노드보다 작은 값들만, 반대로 어떤 노드의 오른쪽 서브트리에는 해당 노드보다 큰 값들만 있습니다. 이진탐색트리의 특징 장점? 1. 일반 적으로 이진 탐색의 중앙 요소를 알아야 왼쪽과 오른쪽 두곳의 트리를 나눌 수 있기 때문에 "배열"에서만 사용할 수 있습니다. 즉, 배열구조가아닌 연결리스트 혹은 동적으로 크기가 변하는 배열은 사용할 수 없습니다! 2. 배열을 사용하여 탐색할 때 보다 시.. 2023. 4. 27.
[알고리즘] 빅오 표기법 (Big O notation) 알고리즘에서 복잡도를 판단하는 척도중 시간 복잡도와 관련이 있는 표기법 입니다. 빅오(Big O)표기법은 알고리즘의 최악의(최대소요시간)을 표현하는데 사용합니다. *추가 정보* 빅오와 관련하여 빅오메가(Big Ω) , 빅세타(Big θ)의 표현법도 있습니다. 빅오메가 표기법 : 알고리즘의 최고(최저소요시간)을 표현합니다. 빅세타 표기법 : 알고리즘의 평균소요시간을 표현합니다. 다시 본론으로 돌아와 빅오 표기법에 대하여 알아보도록 하겠습니다. 빅오 표기법의 특징 상수항 무시 : 알고리즘이 O(N+5)의 복잡도를 가졌다면 상수를 생략하여 O(N)으로 표기합니다. 계수도 무시 : 알고리즘이 O(3N)의 복잡도를 가졌다면 계수를 생략하여 O(N)으로 표기합니다. 최고차항 표기 : 알고리즘이 O(3N^3+2N^2.. 2023. 4. 26.
[백준/C++] 1914 하노이 탑 하노이탑 공부하면서 겸사겸사 백준 문제도 풀어보도록 했다. 재귀함수는 그대로 인데.. 함수내부에서 else 부분에 매개변수 순서를 공부한대로 했더니 틀렸다고한다.. Hanoi(n - 1, mid, from, to); // 이렇게된게 아래쪽이었는데 위에 있어야 정답이었다... cout 2023. 4. 25.