Algorithm/Recursion2 [Recursion/C++] 이진트리 재귀 알고리즘 size(), height(), mirror(), sumOfWeight(), maxPathWeight() size() int treeSize(node *root) { int size=0; if( root != NULL ) size = 1 + treeSize(root->leftSubtree)+ treeSize(root->rightSubtree); return size; } height() int treeHeight(node *root){ int height=0; if( root != NULL ) height = 1 + max(treeHeight(root->leftSubtree),treeHeight(root->rightSubtree)); return height; } mirror() void mirror(node *root) { if (root == NULL) return; else { struct node *.. 2021. 10. 27. [Recursion/C++] 이진트리(Binary Tree)의 순회 / PreOrder(전위순회), InOrder(중위순회), postOrder(후위순회) 이진트리의 정의 (recursively) (Base case) 공집합이거나 (recursive step) 루트 노드와 왼쪽 및 오른쪽 하위 트리로 구성되며, 서브 트리들은 모두 이진트리이다. struct node { char data; struct node *leftSubtree; struct node *rightSubtree; }; 트리 순회 트리 구조에서 각각의 노드를 정확히 한 번만, 체계적인 방법으로 방문하는 과정을 말한다. 트리 순회의 종류 PreOrder(전위순회) : root → leftSubTree → rightSubTree InOrder(중위순회) : leftSubtree → root → rightSubTree PostOrder(후위순회) : leftSubTree → rightSubTre.. 2021. 10. 27. 이전 1 다음