SLENDER ANKLES's 개발블로그
홈
태그
미디어로그
위치로그
방명록
트리 순회_동적할당소스코드
자료구조
2015. 3. 31. 11:51
기본적인 동작은 트리 순회에 대해 이해 하고 있다면 이해 할 수 있다.
참고하기 위해 소스코드를 저장 해 둘려고 한다.
#include <iostream> using namespace std; struct Node{ Node *left; Node *right; char Data; }; Node* BT_CreateNode(char Data); void BT_PreorderPrintTree(Node* node); void BT_InorderPrintTree(Node* node); void BT_PostorderPrintTree(Node* node); void BT_DestroyNode(Node* node); void BT_DestroyTree(Node* Root); int main(){ // 노드 생성 Node* A = BT_CreateNode('A'); Node* B = BT_CreateNode('B'); Node* C = BT_CreateNode('C'); Node* D = BT_CreateNode('D'); Node* E = BT_CreateNode('E'); Node* F = BT_CreateNode('F'); Node* G = BT_CreateNode('G'); // 트리에 노드 추가 A->left = B; A->right = E; B->left = C; B->right = D; E->left = F; E->right = G; cout << "Preorder Print" << endl; BT_PreorderPrintTree(A); cout << endl; cout << "Inorder Print" << endl; BT_InorderPrintTree(A); cout << endl; cout << "Postorder Print" << endl; BT_PostorderPrintTree(A); cout << endl; // 트리 소멸 BT_DestroyTree(A); return 0; } Node* BT_CreateNode(char Data){ Node* NewNode = new Node; NewNode->left = NULL; NewNode->right = NULL; NewNode->Data = Data; return NewNode; } void BT_PreorderPrintTree(Node* node){ if (node == NULL){ return; } cout << node->Data << " "; // 왼쪽 노드 출력 BT_PreorderPrintTree(node->left); // 오른쪽 노드 출력 BT_PreorderPrintTree(node->right); } void BT_InorderPrintTree(Node* node){ if (node == NULL){ return; } // 왼쪽 노드 출력 BT_PreorderPrintTree(node->left); cout << node->Data << " "; // 오른쪽 노드 출력 BT_PreorderPrintTree(node->right); } void BT_PostorderPrintTree(Node* node){ // 왼쪽 노드 출력 BT_PreorderPrintTree(node->left); // 오른쪽 노드 출력 BT_PreorderPrintTree(node->right); cout << node->Data << " "; } void BT_DestroyNode(Node* node){ free(node); } void BT_DestroyTree(Node* Root){ if (Root == NULL) return; // 왼쪽 소멸 BT_DestroyTree(Root->left); // 오른쪽 소멸 BT_DestroyTree(Root->right); // 루트 소멸 BT_DestroyNode(Root); }
공유하기
게시글 관리
SLENDER ANKLES's 개발블로그
'
자료구조
' 카테고리의 다른 글
트리(Tree)
(0)
2015.07.01
위상정렬
(0)
2015.07.01
자료구조 - 리스트(List)
(0)
2015.06.16
정렬에 관해서
(0)
2015.04.03
트리의 순회
(1)
2015.03.25
Posted by
slender ankles
,
slender ankles
카테고리
분류 전체보기
(203)
Javascript(~es5)
(0)
JAVA
(27)
네트워크
(13)
DesignPattern
(2)
Spring boot
(0)
OS
(10)
Simple알고리즘
(0)
알고리즘문제풀이
(76)
알고리즘
(20)
자료구조
(10)
자바관련
(1)
컴퓨터보안
(0)
Database
(3)
C
(0)
ServletJDBC
(13)
SpringFramework
(0)
Hibernate
(0)
OOP
(1)
Android
(14)
Amazon AWS
(2)
Ubuntu_LINUX
(1)
Node.js
(4)
Javascript
(1)
mongodb
(2)
Git
(1)
기타
(1)
Opic
(0)
IT정보
(1)
생각
(0)
Study
(0)
태그목록
최근에 올라온 글
최근에 달린 댓글
글 보관함
달력
«
2024/12
»
일
월
화
수
목
금
토
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
링크
Total :
Today :
Yesterday :
티스토리 초대신청
티스토리툴바