랜덤하게 2진트리를 생성하고, 각각의 방식 (Preorder, Inorder, Postorder) 으로 출력하는 프로그램을 만들어 보았다.
먼저 랜덤하게 생성되는 트리는 중복되지 않는 20개의 숫자를 랜덤하게 생성하여 이진트리로 만들었다.
랜덤하게 생성된 이진트리의 구조는 다음과 같다.
이를 각각의 방식으로 출력해주는 함수를 만들어 출력해 주었다.
출력함수는 다음과 같다.
Preorder 방식
Inorder 방식
Postorder 방식
Linked List로 연결되어 있는 트리의 Root 포인터를 인자로 받아와
Recursion을 이용하여 각각의 방식대로 출력해 준다.
함수 내에서 Recursive하게 함수가 호출되는 순서를 보면, 이전 포스팅에서 이야기 했던
각 방식의 호출 순서와 동일함을 확인 할 수 있다.
이는 이해하기 좀 더 쉬울것이라 예상된다.
결과적으로 최종 출력 화면을 확인해 보면
다음과 같이 제대로 출력되는 모습을 확인 할 수 있다.
'Computer Science > 자료구조' 카테고리의 다른 글
Binary Tree Traversal - Inorder, Preorder, Postorder, Levelorder (0) | 2012.08.30 |
---|---|
Linked List를 이용한 다항식 덧셈연산 (Polynomial Add) (0) | 2012.08.03 |
Linked List (링크드 리스트) 이해 및 기본적인 생성 (0) | 2012.08.03 |
Infix to Postfix - 중위표기식을 후위표기식으로 변환 (0) | 2012.07.31 |
Postfix Evaluation, 후위표기식 연산 (0) | 2012.07.31 |