AVL Trees.ppt
《AVL Trees.ppt》由会员分享,可在线阅读,更多相关《AVL Trees.ppt(43页珍藏版)》请在麦多课文档分享上搜索。
1、AVL Trees,CSE 373 Data Structures Lecture 8,12/26/03,AVL Trees - Lecture 8,2,Readings,Reading Section 4.4,12/26/03,AVL Trees - Lecture 8,3,Binary Search Tree - Best Time,All BST operations are O(d), where d is tree depth minimum d is for a binary tree with N nodes What is the best case tree? What is
2、 the worst case tree? So, best case running time of BST operations is O(log N),12/26/03,AVL Trees - Lecture 8,4,Binary Search Tree - Worst Time,Worst case running time is O(N) What happens when you Insert elements in ascending order? Insert: 2, 4, 6, 8, 10, 12 into an empty BST Problem: Lack of “bal
3、ance”: compare depths of left and right subtree Unbalanced degenerate tree,12/26/03,AVL Trees - Lecture 8,5,Balanced and unbalanced BST,4,2,5,1,3,1,5,2,4,3,7,6,4,2,6,5,7,1,3,Is this “balanced”?,12/26/03,AVL Trees - Lecture 8,6,Approaches to balancing trees,Dont balance May end up with some nodes ver
4、y deep Strict balance The tree must always be balanced perfectly Pretty good balance Only allow a little out of balance Adjust on access Self-adjusting,12/26/03,AVL Trees - Lecture 8,7,Balancing Binary Search Trees,Many algorithms exist for keeping binary search trees balanced Adelson-Velskii and La
5、ndis (AVL) trees (height-balanced trees) Splay trees and other self-adjusting trees B-trees and other multiway search trees,12/26/03,AVL Trees - Lecture 8,8,Perfect Balance,Want a complete tree after every operation tree is full except possibly in the lower right This is expensive For example, inser
6、t 2 in the tree on the left and then rebuild as a complete tree,Insert 2 & complete tree,6,4,9,8,1,5,5,2,8,6,9,1,4,12/26/03,AVL Trees - Lecture 8,9,AVL - Good but not Perfect Balance,AVL trees are height-balanced binary search trees Balance factor of a node height(left subtree) - height(right subtre
7、e) An AVL tree has balance factor calculated at every node For every node, heights of left and right subtree can differ by no more than 1 Store current heights in each node,12/26/03,AVL Trees - Lecture 8,10,Height of an AVL Tree,N(h) = minimum number of nodes in an AVL tree of height h. Basis N(0) =
8、 1, N(1) = 2 Induction N(h) = N(h-1) + N(h-2) + 1 Solution (recall Fibonacci analysis) N(h) h ( 1.62),h-1,h-2,h,12/26/03,AVL Trees - Lecture 8,11,Height of an AVL Tree,N(h) h ( 1.62) Suppose we have n nodes in an AVL tree of height h. n N(h) (because N(h) was the minimum) n h hence log n h (relative
9、ly well balanced tree!) h 1.44 log2n (i.e., Find takes O(logn),12/26/03,AVL Trees - Lecture 8,12,Node Heights,1,0,0,2,0,6,4,9,8,1,5,1,height of node = h balance factor = hleft-hright empty height = -1,0,0,height=2 BF=1-0=1,0,6,4,9,1,5,1,Tree A (AVL),Tree B (AVL),12/26/03,AVL Trees - Lecture 8,13,Nod
10、e Heights after Insert 7,2,1,0,3,0,6,4,9,8,1,5,1,height of node = h balance factor = hleft-hright empty height = -1,1,0,2,0,6,4,9,1,5,1,0,7,0,7,balance factor 1-(-1) = 2,-1,Tree A (AVL),Tree B (not AVL),12/26/03,AVL Trees - Lecture 8,14,Insert and Rotation in AVL Trees,Insert operation may cause bal
11、ance factor to become 2 or 2 for some node only nodes on the path from insertion point to root node have possibly changed in height So after the Insert, go back up to the root node by node, updating heights If a new balance factor (the difference hleft-hright) is 2 or 2, adjust tree by rotation arou
12、nd the node,12/26/03,AVL Trees - Lecture 8,15,Single Rotation in an AVL Tree,2,1,0,2,0,6,4,9,8,1,5,1,0,7,0,1,0,2,0,6,4,9,8,1,5,1,0,7,12/26/03,AVL Trees - Lecture 8,16,Let the node that needs rebalancing be .There are 4 cases:Outside Cases (require single rotation) :1. Insertion into left subtree of
13、left child of .2. Insertion into right subtree of right child of .Inside Cases (require double rotation) :3. Insertion into right subtree of left child of .4. Insertion into left subtree of right child of .,The rebalancing is performed through four separate rotation algorithms.,Insertions in AVL Tre
14、es,12/26/03,AVL Trees - Lecture 8,17,j,k,X,Y,Z,Consider a valid AVL subtree,AVL Insertion: Outside Case,h,h,h,12/26/03,AVL Trees - Lecture 8,18,j,k,X,Y,Z,Inserting into X destroys the AVL property at node j,AVL Insertion: Outside Case,h,h+1,h,12/26/03,AVL Trees - Lecture 8,19,j,k,X,Y,Z,Do a “right r
15、otation”,AVL Insertion: Outside Case,h,h+1,h,12/26/03,AVL Trees - Lecture 8,20,j,k,X,Y,Z,Do a “right rotation”,Single right rotation,h,h+1,h,12/26/03,AVL Trees - Lecture 8,21,j,k,X,Y,Z,“Right rotation” done! (“Left rotation” is mirrorsymmetric),Outside Case Completed,AVL property has been restored!,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVLTREESPPT
