728x90

자료구조트리 3

[ 자료구조 ] level order iterative inorder tree traversal

[ 자료구조 ] level order iterative inorder tree traversal 1. 반복적 중위 탐색(inorder traversal) 알고리즘 트리 탐색을 꼭 순환 알고리즘으로 작성해야 하는 것은 아니다. 아래 예는 중위 탐색 알고리즘을 반복적인 알고리즘으로 작성한 것이다. 각 노드를 방문하면서 과거 노드를 LIFO 순으로 기억해야 하기 때문에 스택을 사용하였다. void iter_inorder(tree_ptr node){ int top = -1; tree_ptr stack[MAX_STACK_SIZE]; while(1){ while(node){ push(&top, node); node = node->left_child; } node = pop(&top); if(!node) break;..

CS/자료구조 2021.11.29

[ 자료구조 ] inorder preorder postorder traversal 탐색 알고리즘

[ 자료구조 ] inorder preorder postorder traversal 탐색 알고리즘 1. 중위 탐색 (inorder traversal) 알고리즘 , 왼나오 중위 탐색 트리 알고리즘은 순환 알고리즘이 간단하다. void inorder(tree_ptr ptr) { if(ptr) { inorder(ptr->left_child); printf(“%d”,ptr->data); inorder(ptr->right_child); } } 2. 전위 탐색 (preorder traversal) , 나왼오 순환 알고리즘이다, 전위 탐색으로 모든 트리를 탐색한다. void inorder(tree_ptr ptr) { if(ptr) { printf(“%d”,ptr->data); inorder(ptr->left_child..

CS/자료구조 2021.11.28

[ 자료구조 ] Tree Linked List로 구현하기 (1)

[ 자료구조 ] Tree Linked List로 구현하기 (1) #include #include struct tnode{ int data; struct tnode * left_child; struct tnode * right_child; }; typedef struct tnode node; typedef node * tree_ptr; tree_ptr insert(tree_ptr head, int * number){ tree_ptr tnodes[5]; tree_ptr temp = NULL; for(int i = 0; idata = number[i]; tnodes[i]->left_child = tnodes[i]->right_child = NULL; } head = tnodes[0]; tnodes[0]->le..

CS/자료구조 2021.11.26
728x90