dew's CSE Studying

8.4 이진트리의 순회 본문

2-2/자료구조

8.4 이진트리의 순회

dew₍ᐢ.ˬ.⑅ᐢ₎ 2023. 11. 15. 16:58

[순회 프로그램]

//순회 프로그램
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>

typedef struct TreeNode {
	int data;
	struct TreeNode* left, * right;
}TreeNode;
//        15
//      4   20
//     1  16  25
TreeNode n1 = { 1,NULL,NULL };
TreeNode n2 = { 4,&n1,NULL };
TreeNode n3 = { 16,NULL,NULL };
TreeNode n4 = { 25,NULL,NULL };
TreeNode n5 = { 20,&n3,&n4 };
TreeNode n6 = { 15,&n2,&n5 };
TreeNode* root = &n6;

inorder(TreeNode* root) {//중위순회
	if (root) {
		inorder(root->left);
		printf("[%d] ", root->data);
		inorder(root->right);
	}
}
preorder(TreeNode* root) {//전위순회
	if (root) {
		printf("[%d] ", root->data);
		inorder(root->left);
		inorder(root->right);
	}
}
postorder(TreeNode* root) {//후위순회
	if (root) {
		inorder(root->left);
		inorder(root->right);
		printf("[%d] ", root->data);
	}
}

int main(void)
{
	printf("중위 순회=");
	inorder(root);
	printf("\n");

	printf("전위 순회=");
	preorder(root);
	printf("\n");

	printf("후위 순회=");
	postorder(root);
	printf("\n");

	return 0;

}