[c++] 후위 순회(Postorder Traversal)
다음은 C++로 작성된 후위 순회의 예시 코드입니다.
#include <iostream>
struct Node {
int data;
Node* left;
Node* right;
};
void postorderTraversal(Node* root) {
if (root == nullptr) {
return;
}
postorderTraversal(root->left);
postorderTraversal(root->right);
std::cout << root->data << " ";
}
int main() {
// 트리 생성 및 초기화
Node* root = new Node{1, new Node{2, nullptr, nullptr}, new Node{3, nullptr, nullptr}};
// 후위 순회 수행
postorderTraversal(root);
return 0;
}
이 코드는 이진 트리를 후위 순회하는 간단한 예시입니다. 노드가 가진 데이터를 출력하기 때문에 Node
구조체에는 데이터를 저장할 data
멤버와 왼쪽, 오른쪽 자식 노드를 가리키는 포인터가 필요합니다. 그리고 postorderTraversal
함수를 호출하여 후위 순회를 수행할 수 있습니다.
후위 순회의 구체적인 예시와 동작 방식을 보다 자세히 살펴보고 싶다면 다음 참고 자료를 확인해보세요:
- Goodrich, M. T., & Tamassia, R. (2015). Data Structures and Algorithms in C++. John Wiley & Sons.