#순회의 종류 3개
순회의 기준은 트리노드를 언제 방문하느냐에 있다.
즉 루트 노드를 방문하는 시점에 따라 서 중위, 후위, 전위 순회로 나뉘어 진다.
1단계 왼쪽 서브트리의 순회
2단계 루트노드의 방문
3단계 오른쪽 서브트리의 순회
- 전위 순회(Preorder Traversal)
- 중위 순회(Inorder Traversal)
- 후위 순회(Postorder Traversal)
#이진트리 구현
h
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #include"Tree.h" TreeNode::TreeNode() { m_data = 0; m_level = 0; mp_lift = NULL; mp_right = NULL; } TreeNode::~TreeNode() { if (mp_lift != NULL) delete mp_lift; if (mp_right != NULL) delete mp_right; } void TreeNode::MakeLiftSubTree(int _index) { TreeNode* pNode = new TreeNode(); pNode->m_level = this->m_level + 1; pNode->m_data = _index; this->mp_lift = pNode; } void TreeNode::MakeRightSubTree(int _index) { TreeNode* pNode = new TreeNode(); pNode->m_level = this->m_level + 1; pNode->m_data = _index; this->mp_right = pNode; } void TreeNode::SetData(int _index) { m_data = _index; } int TreeNode::GetData() { return m_data; } TreeNode* TreeNode::GetLiftSubTree() { return mp_lift; } TreeNode* TreeNode::GetRightSubTree() { return mp_right; } void TreeNode::PreorderTraverse() { if (this == NULL) return; cout << m_data << endl; this->mp_lift->InorderTraverse(); this->mp_right->InorderTraverse(); } void TreeNode::InorderTraverse() { if (this == NULL) return; this->mp_lift->InorderTraverse(); cout << m_data << endl; this->mp_right->InorderTraverse(); } void TreeNode::PostorderTraverse() { if (this == NULL) return; this->mp_lift->InorderTraverse(); this->mp_right->InorderTraverse(); cout << m_data << endl; } | cs |
사용해보기
level 그림
1번 트리의 순회 결과
전위 순회 결과
중위 순회 결과
후위 순회 결과
2번 트리의 순회 결과
전위 순회 결과
중위 순회 결과
후위 순회 결과
반응형
'Programming > DS & Algorithm' 카테고리의 다른 글
알고리즘 문제 3n + 1 (0) | 2015.08.18 |
---|---|
수식 트리(Expression Tree)의 구현 (0) | 2015.06.11 |
트리(Tree)의 개요 (0) | 2015.06.09 |
하노이 타워 (0) | 2015.06.08 |
피보나치 수열(황금비) (0) | 2015.06.07 |
이진탐색 알고리즘 (0) | 2015.06.04 |
순차탐색 알고리즘 (0) | 2015.06.03 |
스텍, 큐 구현 (0) | 2015.05.27 |