Chapter 8. AVL Search Trees

Slides:



Advertisements
Similar presentations
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
Advertisements

1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
홍보출판 위원회 출판국 2010년 사역 계획서 발표자 : 출판국 국장 / 박수만권사 일시: 2010년 01월 17일(일) 1.
Programming Languages Type Conversion Classifying Type Conversions According to the notation –Implicit Conversions (coercion) –Explicit Conversions (casting)
Chapter 7 ARP and RARP.
역대 정부개편의 교훈과 새로운 정부조직개편의 방향
Internet Computing KUT Youn-Hee Han
8. 파일 인덱스: 탐색트리 (Search Tree)
T-tree 엄종진 강원대학교 컴퓨터과학과.
김종찬 김정석 이상미 임성규 담당 교수님 최병수 교수님
Chapter 7. Binary Search Trees - 보충 자료-
체위변경과 이동 요양보호 강사 : 이윤희.
Internet Computing KUT Youn-Hee Han
연결리스트(linked list).
Horowitz, Sahni and Anderson-Freed Computer Science Press
6장 트리.
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
CHAP 7:트리.
강의 #7 트리(Tree).
쉽게 배우는 알고리즘 5장. 검색트리
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
제 5장. Context-Free Languages
Internet Computing KUT Youn-Hee Han
제 8 장 이진 탐색 트 리 8.1 이진 탐색 트리 정의 8.2 이진 탐색 트리의 탐색 8.3 이진 탐색 트리의 삽입
C언어 응용 제 10 주 트리.
Ch. 10 Algorithm Efficiency & Sorting
Internet Computing KUT Youn-Hee Han
트리 2-3 트리 2-3 트리의 노드 AVL은 균형 트리 (Balanced Tree)를 지향
CHAPTER 5 트리(Tree).
제 5 장 트 리 5.1 트리 5.2 이진 트리 5.3 스레드 이진 트리.
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
CHAP 7: 트 리 (1) 한 성 대 학 교 정보통신공학과 봉 정 식.
자료구조 과제 풀이(6,7,8차) Yong-hwan Kim
13. 탐색 트리.
Tree & Heap SANGJI University Kwangman Ko
AVLTree vs 편향 Tree.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Tree & Heap SANGJI University Kwangman Ko
4th HomeWork Guide (ver2.0)
신 윤 호 ㈜엘림에듀 초등사업본부장, 중앙대학교 체육학박사
11장 균형 탐색 트리.
T-Tree MMDB 강원대학교 컴퓨터 과학과 양 기 운
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
CHAP 12: 탐색 순천향대학교 컴퓨터학부 하 상 호.
그래프와 트리 (Graphs and Trees)
CHAP 12: 탐색 순천향대학교 컴퓨터학부 하 상 호.
13장. 균형 탐색 트리 and the pain you must suffer to learn them
동적계획법과 최적화 문제 Dynamic Programming을 사용한 최적화 문제를 해결하는 알고리즘 설계 절차
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
CHAP 12:탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 12 : 탐색.
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 27).
Internet Computing KUT Youn-Hee Han
Chapter 9. Multilevel Indexing and B-Trees
제 8 장 계산복잡도 개론 검색 문제 알고리즘 강의 슬라이드 8 검색 문제
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
점화와 응용 (Recurrence and Its Applications)
강의 #11 탐색(Search).
제 5 장 탐색트리.
Chapter 07 트리.
양초 한 자루의 과학 과학영재교육 전공 김 연 주 류 은 희 이 상 희.
트리 (Logical) Data Structures Linear list Tree Graph Linear structures
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
[CPA340] Algorithms and Practice Youn-Hee Han
Presentation transcript:

Chapter 8. AVL Search Trees Internet Computing Laboratory @ KUT Youn-Hee Han

0. BST Reviews Binary Search Tree (이진 탐색 트리)의 삭제 When we delete a node, we need to consider how we take care of the children of the deleted node. This has to be done such that the property of BST is maintained.

0. BST Reviews Binary Search Tree (이진 탐색 트리)의 삭제 Flash 예제 (Click) Data Structure

0. BST Reviews Binary Search Tree (이진 탐색 트리)의 삭제 get max of left subtree get min of right subtree Data Structure

0. BST Reviews 키 Lee인 노드를 찾기 키 Yoo인 노드 찾기 Park, Kim, Lee(왼쪽 트리) 대 Cho, Kim, Lee(오른쪽 트리) 키 Yoo인 노드 찾기 Park, Seo, Yoo: (왼쪽 트리) 대 Cho, Kim, Lee, Park, Seo, Yoo (오른쪽 트리) Data Structure

0. BST Reviews 균형 최악의 경우 탐색은 Leaf Node까지 왼쪽 트리는 완전한 균형. 오른쪽 트리는 왼쪽 서브트리의 Heighr가 0(빈 트리), 오른쪽 서브트리(Root가 Kim인 트리)의 높이가 5로서 균형이 현저히 무너짐. 최악의 경우 탐색은 Leaf Node까지 왼쪽 트리는 최악의 경우에도 높이가 3. 오른쪽 트리는 최악의 경우 높이 6를 모두 타고 내려와야 함. 오른쪽 트리는 연결 리스트(Linked List)에 가까움. 연결이 한쪽으로 일직선으로(Linear Structure) 진행하는 트리  편향 이진트리 (Skewed Binary Tree) Data Structure

0. BST Reviews 이진 탐색 트리에서의 탐색 효율 균형이 잘 잡혀있는 경우 균형이 무너진 경우 높이는 lgN에 가까움. 높이만큼 키 비교를 요함. 효율 O(lgN) 균형이 무너진 경우 최악의 경우 연결 리스트에 가까움 효율 O(N) Data Structure

1. AVL Tree Basic Concepts Motivation Complexity of BST Average case: O(log n) Inserting sorted data Worst case: O(n) If BST is unbalanced, the efficiency is bad. Balance (복습) Balance factor (B) = HL – HR Balanced binary tree: |B|  1 HL HR Data Structure

1. AVL Tree Basic Concepts AVL Tree: a binary search tree in which the heights of the subtrees differ by no more than 1 |HL-HR|<=1 for all nodes Cf. HL-HR is called balance factor An AVL is a balanced tree Invented by G.M Adelson-Velskii and E.M. Landis, 1962. Data Structure

1. AVL Tree Basic Concepts AVL Tree Example Data Structure

1. AVL Tree Basic Concepts -1 1 Is It an AVL Tree? 10 40 30 45 20 35 25 60 7 3 8 1 5 Data Structure

1. AVL Tree Basic Concepts AVL Trees Non-AVL Trees Data Structure

1. AVL Tree Basic Concepts 삽입과 삭제시 고려졈 Balance Factor의 범위가 넘어선 노드 확인 삽입, 삭제가 일어나면 반드시 해당 위치로부터 루트까지 올라가면서 모든 노드에 대한 Balance Factor가 그 범위를 넘어섰는지 확인 typedef struct { char Name[ ];        이름 필드 node* LChild;          왼쪽 자식을 가리키는 포인터 node* RChild;          오른쪽 자식을 가리키는 포인터 int balance_factor; } node;                  노드는 구조체 타입 typedef node* Nptr;  노드를 가리키는 포인터를 Nptr 타입으로 정함 Disadvantage: needs extra storage for maintaining node balance Data Structure

2. Balancing AVL Trees Inserting a node into an AVL tree 1. Connect the new node to a leaf node with the same algorithm with BST insertion 2. Check the balance of each node 3. If an unbalanced node “r” is found, rebalance it and then continue up the tree Not all insertion breaks the balance Data Structure

2. Balancing AVL Trees All unbalanced tree fall into one of these 4 cases At the nearest unbalanced ancestor r from the new node x Left of left: A subtree (r) that is left high has also become left high Right of right: A subtree (r) that is right high has also become right high Data Structure

2. Balancing AVL Trees All unbalanced tree fall into one of these 4 cases At the nearest unbalanced ancestor r from the new node x Right of left: A subtree (r) that is left high has included right high subtree Left of right: A subtree (r) that is right high has included left high subtree Data Structure

Node 4 attached to new parent 2. Balancing AVL Trees Rotation: switching children and parents among two or three adjacent nodes to restore balance of a tree. Rotation with Re-attachment 1 2 3 5 6 4 Node 4 attached to new parent Data Structure

2. Balancing AVL Trees A rotation may change the depth of some nodes, but does not change their relative ordering. Mar May Nov rotation -1 -2 Insertion-> unbalancing -> rebalancing Data Structure

2. Balancing AVL Trees Case I: Left of left 경우  “LL Rotation” 으로 해결 불균형 노드 r의 왼쪽 서브트리의 왼쪽 서브트리에 새 노드 Y가 삽입된 경우 마지막의 RChild에 삽입되는 경우와, LChild에 삽입되는 경우 BF: 2 BF: 2 12 L 12 L L 7 20 L 7 20 3 10 3 10 5 2 Data Structure

2. Balancing AVL Trees 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 Data Structure

2. Balancing AVL Trees LL Rotation Examples Data Structure

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

2. Balancing AVL Trees RR Rotation Examples Data Structure

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

2. Balancing AVL Trees LR Rotation Examples Data Structure

2. Balancing AVL Trees LR Rotation Examples Data Structure

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

2. Balancing AVL Trees RL Rotation Examples Data Structure

3. Efficiency of AVL Trees 가장 먼저 시도된 균형 트리 이론 균형을 잡기 위해 트리 모습을 수정 실제 코딩면에서 볼 때 AVL 트리는 매우 까다롭고 복잡 트리의 균형 탐색효율 O(lgN)을 보장 삽입, 삭제 될 때마다 균형 파괴여부 검사하는 시간이 필요 트리를 재구성(Rebuilding)하는 시간이 필요 통계적으로 삽입, 삭제 이후… 회전이 필요없는 경우: 54% LL/RR 회전이 필요한 경우: 23% LR/RL 회전이 필요한 경우: 23% Data Structure