자료구조 과제 풀이(6,7,8차) Yong-hwan Kim

Slides:



Advertisements
Similar presentations
주요 내용 기본 용어 이진 트리(binary tree) 이진 탐색 트리(binary search tree)
Advertisements

자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
Chapter 7 ARP and RARP.
Internet Computing KUT Youn-Hee Han
8. 파일 인덱스: 탐색트리 (Search Tree)
Chapter 7. Binary Search Trees - 보충 자료-
Internet Computing KUT Youn-Hee Han
4장 구문(Syntax).
트리 이 현 직
자료구조론 9장 트리(tree).
6장 트리.
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
CHAP 7:트리.
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 50).
강의 #7 트리(Tree).
쉽게 배우는 알고리즘 5장. 검색트리
On the computation of multidimensional Aggregates
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
Chapter 9 – 구조형과 리스트 처리 Outline 9.1 자신 참조 구조형 9.2 선형 연결 리스트 9.3 리스트 연산
제 7 장. 트리(Tree).
제 5장. Context-Free Languages
Chapter 8. AVL Search Trees
C언어 응용 제 10 주 트리.
Dynamic Programming.
Internet Computing KUT Youn-Hee Han
Chapter 2. Finite Automata Exercises
이진트리 순회 트리내의 모든 노드를 특정 순서에 따라 한번씩 방문 하는 것 방문 순서 R: Moving Right Child
트리 2-3 트리 2-3 트리의 노드 AVL은 균형 트리 (Balanced Tree)를 지향
CHAPTER 5 트리(Tree).
제 5 장 트 리 5.1 트리 5.2 이진 트리 5.3 스레드 이진 트리.
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
CHAP 7: 트 리 (1) 한 성 대 학 교 정보통신공학과 봉 정 식.
IT CookBook, 자바로 배우는 쉬운 자료구조
13. 탐색 트리.
Tree & Heap SANGJI University Kwangman Ko
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
AVLTree vs 편향 Tree.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
C언어 응용 제10주 실습 해보기 제8장 트리.
Tree & Heap SANGJI University Kwangman Ko
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
4th HomeWork Guide (ver2.0)
11장 균형 탐색 트리.
Dynamic Programming.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
자료구조: CHAP 7(2) 트리 순천향대학교 컴퓨터공학과 하 상 호.
그래프와 트리 (Graphs and Trees)
CHAP 12: 탐색 순천향대학교 컴퓨터학부 하 상 호.
13장. 균형 탐색 트리 and the pain you must suffer to learn them
트리.
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
CHAP 12:탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 12 : 탐색.
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 27).
이산수학(Discrete Mathematics)
Chapter 9. Multilevel Indexing and B-Trees
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
점화와 응용 (Recurrence and Its Applications)
강의 #11 탐색(Search).
탐색 선형 탐색, 이진 탐색, 이진 탐색 트리.
제 5 장 탐색트리.
Chapter 07 트리.
트리 (Logical) Data Structures Linear list Tree Graph Linear structures
자료구조 자료구조의 개요 배열 선형 리스트 스택 큐 트리.
우선순위 큐 & Heap Ref. C로 쉽게 풀어쓴 자료구조, 생능출판사, 2005.
[CPA340] Algorithms and Practice Youn-Hee Han
Presentation transcript:

자료구조 과제 풀이(6,7,8차) Yong-hwan Kim cherish@kut.ac.kr Korea University of Technology and Education Laboratory of Intelligent Networks http://link.kut.ac.kr

6차 과제 풀이

6차 과제 풀이 Problem 2. In Figure 6-25 find the: A B F G H J I K L C D E a. root : A b. leaves : D, E, H, L, J c. internal nodes : B, C, F, G, I, K d. ancestors of H : A, F, G e. descendents of F : G, H, I, J, K, L A B F G H J I K L C D E

1. Basic Tree Concepts Definitions 자매노드 (Sibling Node): nodes with the same parent 같은 부모 아래 자식 사이에 서로를 자매노드 (Sibling Node)라 함. B, C, D는 서로 자매노드이며, E, F도 서로 자매노드임. 부모가 없는 노드 즉, 원조격인 노드를 루트 노드 (Root Node)라 함. C, D, E, F처럼 자식이 없는 노드를 리프노드 (Leaf Node)라 함. 리프노드를 터미널 노드 (Terminal Node)라고도 함. node with out-degree zero 리프노드 및 루트노드를 제외한 모든 노드를 내부노드 (Internal Node)라 함 B

1. Basic Tree Concepts Definitions 트리의 구성 요소에 해당하는 A, B, C, ..., F를 노드 (Node)라 함. A node is child of its predecessor B의 바로 아래 있는 E, F를 B의 자식노드 (Child Node)라 함. A node is parent of its successor nodes B는 E, F의 부모노드 (Parent Node) A는 B, C, D의 부모노드 (Parent Node)임. 어떤 노드의 하위에 있는 노드를 후손노드 (Descendant Node)라 함. B, E, F, C, D는 A의 후손노드임. 주어진 노드의 상위에 있는 노드들을 조상노드 (Ancestor Node)라 함. B, A는 F의 조상노드임. Path a sequence of nodes in which each node is adjacent to the next one

6차 과제 풀이 Problem 4. In Figure 6-25 find the: A B F G H J I K L C D E a. height of the tree : 6 b. height of subtree G : 4 c. level of node G : level 2 d. level of node A : level 0 e. height of subtree E : 1 A B F G H J I K L C D E

1. Basic Tree Concepts Definitions 트리의 레벨(Level) distance from the root 루트노드를 레벨 0으로 하고 아래로 내려오면서 증가 트리의 높이(Height or Depth) level of the leaf in the longest path from the root + 1 (트리의 최대 레벨 수 + 1) = 트리의 높이(Height) 루트만 있는 트리의 높이는 1 비어있는 트리 (empty tree)의 높이는 0 (=4)

6차 과제 풀이 Exercises 8. Find a binary tree whose preorder and inorder travels create the same result. void preOrder(root) { if (root == NULL) return; printf("%s", root->data); preOrder(root->left); preOrder(root->right); } ≒ void inOrder(root) { inOrder(root->left); inOrder(root->right);

6차 과제 풀이 Exercises 10. In a binary tree, what is the maximum number of nodes that can be found in level 3? In level4? In level 12? The Maximum number of nodes in level 3 is 2^4 - 1 = 15 The Maximum number of nodes in level 4 is 2^5 - 1 = 31 The Maximum number of nodes in level 12 is 2^13 - 1 = 8191

2. Binary Tree Properties of Binary Tree 트리 내의 노드의 수를 이라 가정했을 때 트리 내의 노드의 수를 이라 가정했을 때 Maximum Height Ex] Given N=3 in a binary tree, what is the maximum height? Minimum Height Ex] Given N=3 in a binary tree, what is the minimum height? 트리의 높이를 라고 가정했을 때 Maximum Number of Nodes Ex] Given H=3 in a binary tree, what is the maximum number of nodes? Minimum Number of Nodes Ex] Given H=3 in a binary tree, what is the minimum number of nodes?

6차 과제 풀이 Exercises 16. Find the root of each of the following binary trees: a. tree with postorder traversal: FCBDG root : G b. tree with preorder traversal: IBCDFEN root : I c. tree with inorder traversal: CBIDFGE root : 모든 노드 가능

6차 과제 풀이 Exercises 18. A binary tree has eight nodes. The postorder and inorder traversals of the tree are given below. Draw the tree. Postorder : FECHGDBA Inorder : FCEABHDG Postorder : root가 뒤에 있음을 알 수 있다. Inorder : root를 중심으로 왼쪽의 노드들로 왼쪽의 서브트리, 오른쪽 노드들로 오른쪽 서브트리가 구성됨을 알 수 있다. Ex) 1. postorder를 통해 A가 최상위 root, inorder를 통해 좌우 서브 트리를 2. 왼쪽 서브 트리 FEC만 따질 경우 root C(postorder), F는 좌 E는 우(by Inorder) 3. 오른쪽서브트리 HGDB의 경우 root B, 좌는 없고 우는 HDG(by Inorder) 등등…

6차 과제 풀이 Exercises 30. Show the result of the recursive function in Algorithm 6-9 using the tree in Figure 6-26. Algorithm treeTraversal (tree) if tree is null print "Null" else treeTraversal (right subtree) print "right is done" treeTraversal (left subtree) print (tree data) end if end treeTraversal Null right is done K J I H G F E D C B A

7차 과제 풀이

1. Basic Concepts Binary search tree (BST): binary tree that is All items in left subtree are less than the root All items in right subtree are greater than the root Each subtree itself is a binary search tree BST의 예

7차 과제 풀이 Exercises 2. Create a binary search tree using the following data entered as a sequential set : 14 23 7 10 33 56 80 66 70

7차 과제 풀이 Exercises 6. Insert 44 and 50 into the tree created in Exercise 3. Insert 44 and 50 7 10 14 23 33 56 66 70 80

7차 과제 풀이 Exercises 10. The binary search tree in Figure 7-19 was created by starting with a null tree and entering data from the keyboard. In what sequence were the data entered? If there is more than one possible sequence, identify the alternatives. 1 : 25 20 18 19 14 2 : 25 20 18 14 19

7차 과제 풀이 Exercises 13. Delete the node containing 60 from the binary search tree in Figure 7-22. 중위선행자 중위후속자

2. BST Operations Deletion Case 4: the node has both left and right children 노드 G를 삭제  우왕 복잡하다~~~~ 이진 탐색트리를 중위순회(In-order Traversal)한 결과를 생각 : A < B < D < F < G < H < K < L G가 삭제된 후에도 정렬된 순서를 그대로 유지하려면 G의 자리에는 G의 바로 오른쪽 H나, 아니면 G의 바로 왼쪽 F가 들어가야 함. G 바로 다음에 나오는 H를 G의 중위 후속자(In-order Successor)라 하고, G 바로 직전에 나오는 F를 G의 중위 선행자(In-order Predecessor)라고 함. 그래서, 결론적으로 G에 대한 중위 후속자나 중위 선행자가 G의 자리로 옮겨져야 한다. data copy

8차 과제 풀이

2. Balancing Tree - Insert LL Rotation 원리 – Single Right Rotation After rotation, BF(x) = 0, BF(r) = 0,-1,1 * r: nearest ancestor of the new node whose BF(r) is +2 or -2

2. Balancing Tree - Insert Case II: Right of Right 경우  “RR Rotation” 으로 해결 불균형 노드 r의 오른쪽 서브트리의 오른쪽 서브트리에 새 노드 Y가 삽입된 경우 RR Rotation 원리 – Single Left Rotation After rotation, BF(x) = 0, BF(r) = 0,-1,1

8차 과제 풀이 Exercises 2. Balance the AVL tree in Figure 8-18. Show the balance factors in the result. LR L(루트의 왼쪽 서브 트리에서 균형 깨짐) R(균형을 깨는 노드가 서브 트리의 오른쪽에 존재) L(서브트리의 Root를 L) -> R(트리의 Root를 R)

2. Balancing Tree - Insert LR Rotation Examples

2. Balancing Tree - Insert RL Rotation Examples

2. Balancing Tree - Insert 정리 RR – 균형이 깨진 트리의 root를 L(왼쪽)으로 회전 LL – 균형이 깨진 트리의 root를 R(오른쪽)으로 회전 LR L(루트의 왼쪽 서브 트리에서 균형 깨짐) R(균형을 깨는 노드가 서브 트리의 오른쪽에 존재) 이래서 LR 이럴 경우 다음과 같이 L(서브트리의 Root를 L) -> R(트리의 Root를 R) RL R(루트의 오른쪽쪽 서브 트리에서 균형 깨짐) L(균형을 깨는 노드가 서브 트리의 왼쪽에 존재) 이래서 RL 이럴 경우 다음과 같이 R(서브트리의 Root를 R) -> L(트리의 Root를 L)

8차 과제 풀이 Exercises 6. Create an AVL tree using the following data entered as a sequential set. Show the balance factors in the resulting tree" 14 23 7 10 33 56 80 66 70

8차 과제 풀이 Exercises 7. Create an AVL tree using the following data entered as a sequential set. Show the balance factors in the resulting tree" 7 10 14 23 33 56 66 70 80

8차 과제 풀이 Exercises 10. Insert 44 and 50 into the tree created in Exercise 7.

1. Basic Concepts Heap의 속성 A heap is a special kind of tree. It has two properties that are not generally true for other trees: [Completeness] - The tree is (nearly) complete, which means that nodes are added from top to bottom, left to right, without leaving any spaces. [Heapness] - The item in the tree with the highest priority is at the top of the tree, and the same is true for every subtree. (nearly)

8차 과제 풀이 Exercises 2. Make a heap out of the following data read from the keyboard: 23 7 92 6 12 14 40 44 20 21

2. Maintenance Operations Inserting a node into heap 효율 O(lgN) 삭제보다 비교 횟수가 적음 [힙의 삽입] “신입사원이 오면 일단 말단 자리에 앉힌 다음, 능력껏 위로 진급시키는 것(進級, Reheap Up, Promotion)”

8차 과제 풀이 Exercises 6. Apply the delete operation to the heap in Figure 9-21. Repair the heap after the deletion.

2. Maintenance Operations Deleting a node from heap 1. Deletion always occurs at the root To preserve 1st condition, the last node should move to the root 2nd condition could be broken 2. Repair the structure so that 2nd condition is satisfied Reheap Down [힙의 삭제] “사장자리가 비면 말단 사원을 그 자리에 앉힌 다음, 바로 아래 부하직원보다는 능력이 좋다고 판단될 때까지 강등시키는 것(降等, Reheap Down, Demotion)”

8차 과제 풀이 Exercises 8. Show the left and right children of 32 and 27 in the heap in Figure 9-22. Also show the left children of 14 and 40. - 32의 왼쪽자식 : 20, 오른쪽자식 : 25 - 27의 왼짝자식 : 15, 오른쪽자식 : 14 - 14의 왼쪽자식 : NULL - 40의 왼쪽자식 : 27

8차 과제 풀이 10장의 경우, 요즘 겨를이 없어서 살펴보지 못하였습니다. 확신이 없는 답을 올리지는 못하겠습니다… 한 학기 동안 수고하셨고 끝까지 마무리 잘 하시길 바랍니다.

END.