When a BST becomes badly unbalanced, the search behavior can degenerate to that of a sorted linked list, O(N).

Size: px
Start display at page:

Download "When a BST becomes badly unbalanced, the search behavior can degenerate to that of a sorted linked list, O(N)."

Transcription

1 Balanced Binary Trees Binary searc trees provide O(log N) searc times provided tat te nodes are distributed in a reasonably balanced manner. Unfortunately, tat is not always te case and performing a sequence of deletions and insertions can often exacerbate te problem. Wen a BST becomes badly unbalanced, te searc beavior can degenerate to tat of a sorted linked list, O(N). Tere are a number of strategies for dealing wit tis problem; most involve adding some sort of restructuring to te insertdelete algoritms. Tat can be effective only if te restructuring reduces te average dept of a node from te of te BST, and if te cost of te restructuring is, on average, O(log N). We will examine one suc restructuring algoritm AVL tree*: a binary searc tree in wic te eigts of te left and rigt subtrees of te differ by at most, and in wic te left and rigt subtrees are temselves AVL trees. Eac AVL tree node as an associated balance factor indicating te relative eigts of its subtrees (left-iger, equal, rigt-iger). Normally, tis adds one data element to eac tree node and an enumerated type is used. How effective is tis? Te eigt of an AVL tree wit N nodes never exceeds.44 log N and is typically muc closer to log N. *G. M. Adelson-Velskii and E. M. Landis, 96.

2 Examples Tis is an AVL tree......and tis is not. Unbalance from Insertion Consider inserting te value 45 into te AVL tree: Te result would be unbalanced at te node containing 5: 5 50 Te unbalance is repaired by applying one of two types of rotation to te unbalanced subtree 0 45

3 Rebalancing via Subtree Restructuring 5 Te subtree ed at 5 is rigt-iger We restructure te subtree, resulting in a balanced subtree: Te transformation is relatively simple, requiring only a few operations, and results in a subtree tat as equal balance. AVL Insertion Case: rigt-iger 6 Tere are two unbalance cases to consider, eac defined by te state of te subtree tat just received a new node. For simplicity, assume for now tat te insertion was to te rigt subtree (of te subtree). Let be te of te newly unbalanced subtree, and suppose tat its rigt subtree is now rigt-iger: rigt In tis case, te subtree ed at rigt was previously equally balanced (wy?) and te subtree ed at was previously rigtiger (wy?). T Te eigt labels follow from tose observations. T + T Balance can be restored by rotating te values so tat rigt becomes te subtree node and becomes te left cild.

4 AVL Left Rotation 7 Te manipulation just described is known as a left rotation and te result is: rigt rigt T T + T Overall eigt of eac subtree is now te same. T T T Tat covers te case were te rigt subtree as become rigt-iger te case were te left subtree as become left-iger is analogous and solved by a rigt rotation. AVL Insertion Case: left-iger Now suppose tat te rigt subtree as become left-iger: 8 T rigt-left? rigt Te insertion occurred in te left subtree of te rigt subtree of. In tis case, te left subtree of te rigt subtree (ed at rigt-left) may be eiter left-iger or rigt-iger, but not balanced (wy?). T or T T 4 Surprisingly (peraps), tis case is more difficult. Te unbalance cannot be removed by performing a single left or rigt rotation.

5 AVL Double Rotation 9 Applying a single rigt rotation to te subtree ed at rigt produces rigt rigt-left rigt-left?? rigt T 4 T T or T T T 4 a subtree ed at rigt-left tat is now rigt-iger AVL Double Rotation 0 Now, applying a single left rotation to te subtree ed at produces rigt-left? Balance factors ere depend on original balance factor of rigt-left. rigt? rigt-left? rigt T T T 4 T T T T 4 or a balanced subtree. Te case were te left subtree of is rigt-iger is andled similarly (by a double rotation).

6 AVL Node Class Interface An AVL tree implementation can be derived from te BinNodeT and BST classes seen earlier owever, te AVLNode class must add a data member for te balance factor, and a mutator member function for te balance factor: enum BFactor {LEFTHI, RIGHTHI, EQUALHT, DBLRIGHTHI, DBLLEFTHI, BALUNKNOWN; template <typename T> class AVLNode { public: T Element; AVLNode<T>* Left; AVLNode<T>* Rigt; AVLNode<T>* Parent; BFactor Balance; ; AVLNode(); AVLNode(const T& Elem, AVLNode<T>* L = NULL, AVLNode<T>* R = NULL, AVLNode<T>* P = NULL); BFactor adjustbalance(bfactor Grew); bool isleaf() const; ~AVLNode(); Because of tat, using deriving te AVLNode from te more general BSTNode creates more problems tan it solves, and so ineritance is not used in tis implementation. AVL Tree Class Interface Te AVL tree public interface includes: template <typename T> class AVL { public: AVL(); AVL(const AVL<T>& Source); AVL<T>& operator=(const AVL<T>& Source); ~AVL(); T* const Insert(const T& Elem); bool Delete(const T& Elem); T* const Find(const T& Elem); void Clear(); void Display(ostream& Out) const; Iterator declarations omitted to save space... IOiterator ifind(const T& D); return access to D continues...

7 AVL Tree Class Interface Te AVL tree private section includes: continues... private: AVLNode<T>* Root; private elper functions omitted... string BFtoString(BFactor BF) const; used in Display() fn ; void RigtBalance(AVLNode<T>* sroot); re-balance managers used by void LeftBalance(AVLNode<T>* sroot); used by insertdelete fns void RotateLeft(AVLNode<T>* sroot); rotation functions used by void RotateRigt(AVLNode<T>* sroot); used by managers AVL Left Rotation Implementation 4 template <typename T> void AVL<T>::RotateLeft(AVLNode<T>* sroot) { if ( (sroot == NULL) (sroot->rigt == NULL) ) return; AVLNode<T>* Temp = new AVLNode<T>(sRoot->Element); Temp->Left = sroot->left; sroot->left = Temp; Temp->Rigt = sroot->rigt->left; AVLNode<T>* todelete = sroot->rigt; sroot->element = todelete->element; sroot->rigt = todelete->rigt; sroot->balance = todelete->balance; delete todelete;

8 AVL Rigt Balance Implementation Te implementation uses two ig-level functions to manage te rebalancing, one for wen te imbalance is to te rigt and one for wen it is to te left. 5 RigtBalance() would be called wen a condition of double-rigt-ig as been detected at a node following an insertion: template <typename T> void AVL<T>::RigtBalance(AVLNode<T>* sroot) { if ( (sroot == NULL) (sroot->rigt == NULL) ) return; AVLNode<T>* rigtsubtreeroot = sroot->rigt; switc ( sroot->rigt->balance ) { case RIGHTHI: sroot->balance = EQUALHT; rigtsubtreeroot->balance = EQUALHT; RotateLeft(sRoot); break; continues... AVL Rigt Balance Implementation 6 continued... case LEFTHI: AVLNode<T>* leftsubtreerigtsubtree = rigtsubtreeroot->left; switc ( leftsubtreerigtsubtree->balance ) { code to reset balance factors... ; leftsubtreerigtsubtree->balance = EQUALHT; RotateRigt(rigtSubTreeRoot); RotateLeft(sRoot); break;

9 AVL Insert Implementation As usual, insertion involves a relatively simple public "stub" and a recursive elper. 7 template <typename T> T* const AVL<T>::Insert(const T& Elem) { bool Taller = false; return InsertHelper(Elem, Root, NULL, Taller); template <typename T> T* const AVL<T>::InsertHelper(const T& Elem, AVLNode<T>*& sroot, AVLNode<T>* Par, bool& Taller) { if ( sroot == NULL ) { found te rigt location sroot = new AVLNode<T>(Elem); sroot->parent = Par; Taller = true; return &(sroot->element); continues... Tis leaves compensating for te effect of te insertion to be andled wen te recursion backs out. AVL Insert Helper: Descent and Rebalance 8 continued... if ( Elem < (sroot->element) ) { T* insertresult = InsertHelper(Elem, sroot->left, sroot, Taller); if ( Taller ) { left subtree just got taller BFactor srootbalance = sroot->adjustbalance(lefthi); if ( srootbalance == EQUALHT ) { Taller = false; else if ( srootbalance == LEFTHI ) { Taller = true; else if ( srootbalance == DBLLEFTHI ) { Taller = false; LeftBalance( sroot ); return insertresult; else {... continues to andle descent down rigt subtree...

10 Unbalance from Deletion 9 Deleting a node from an AVL tree can also create an imbalance tat must be corrected. Te effects of deletion are potentially more complex tan tose of insertion. Te basic idea remains te same: delete te node, track canges in balance factors as te recursion backs out, and apply rotations as needed to restore AVL balance at eac node along te pat followed down during te deletion. However, rebalancing after a deletion may require applying single or double rotations at more tan one point along tat pat. As usual, tere are cases Here, we will make te following assumptions: - te lowest imbalance occurs at te node (a subtree ) - te deletion occurred in te left subtree of AVL Deletion Case: rigt-iger 0 Suppose we ave te subtree on te left prior to deletion and tat on te rigt after deletion: rigt rigt rigt Note: "rigt-iger" refers to te balance factor of te of te rigt subtree (labeled rigt ere). Ten a single left rotation at will rebalance te subtree.

11 AVL Deletion Case: equal-eigt Suppose we te rigt subtree as balance factor equal-eigt: rigt Again, a single left rotation at will rebalance te subtree. rigt Te difference is te resulting balance factor at te old subtree node,, wic depends upon te original balance factor of te node rigt. AVL Deletion Case: left-iger If te rigt subtree was left-iger, we ave te following situation: rigt-left? or -? rigt 4 Deleting a node from te left subtree of now will cause to become double rigt iger. As you sould expect, te resulting imbalance can be cured by first applying a rigt rotation at te node rigt, and ten applying a left rotation at te node. However, we must be careful because te balance factors will depend upon te original balance factor at te node labeled rigt-left

12 AVL Deletion Case: left-iger, left-iger If te rigt-left subtree was also left-iger, we obtain: rigt-left rigt-left rigt 4 rigt AVL Deletion Case: left-iger, rigt-iger If te rigt-left subtree was rigt-iger, we obtain: 4 rigt-left rigt-left rigt 4 rigt And, finally, if te rigt-left subtree was equal-eigt, we'd obtain a tree were all tree of te labeled nodes ave equal-eigt.

13 AVL Deletion Cases: Summary 5 We ave considered a number of distinct deletion cases, assuming tat te deletion occurred in te left subtree of te imbalanced node. Tere are an equal number of entirely similar, symmetric cases for te assumption te deletion was in te rigt subtree of te imbalanced node. Drawing diagrams elps Tis discussion also as some logical implications for ow insertion is andled in an AVL tree. Te determination of te balance factors in te tree, following te rotations, involves similar logic in bot cases. Implementing AVL Deletion 6 Turning te previous discussion into an implementation involves a considerable amount of work. At te top level, te public delete function must take into account weter te deletion sortened eiter subtree of te tree node. If tat was te case, ten it may be necessary to perform a rotation at te tree itself. Tus, te elper function(s) must be recursive and must indicate weter a subtree was sortened; tis may be accomplised by use of a bool parameter, as was done for te insertion functions. Deletion of te tree node itself is a special case, and sould take into account weter te tree node ad more tan one subtree. If not, te pointer sould simply be retargeted to te appropriate subtree and no imbalance occurs. If te tree node as two subtrees, its value sould be swapped wit te minimum value in te rigt subtree and ten te corresponding node sould be deleted from te rigt subtree.

14 Testing 7 In testing te AVL implementation, I found a few useful ideas: - Test wit small cases first, and vary tem to cover all te different scenarios you can tink of. - Work out te solutions manually as well. If you don't understand ow to solve te problem by and, you'll NEVER program a correct solution. - Test insertion first, torougly. - Ten build an initial, correct AVL tree and test deletion, torougly. - Ten test alternating combinations of insertions and deletions. - Modify your tree print function to sow te balance factors: c d- e - j- k- o s-

each node in the tree, the difference in height of its two subtrees is at the most p. AVL tree is a BST that is height-balanced-1-tree.

each node in the tree, the difference in height of its two subtrees is at the most p. AVL tree is a BST that is height-balanced-1-tree. Data Structures CSC212 1 AVL Trees A binary tree is a eigt-balanced-p-tree if for eac node in te tree, te difference in eigt of its two subtrees is at te most p. AVL tree is a BST tat is eigt-balanced-tree.

More information

CS 234. Module 6. October 16, CS 234 Module 6 ADT Dictionary 1 / 33

CS 234. Module 6. October 16, CS 234 Module 6 ADT Dictionary 1 / 33 CS 234 Module 6 October 16, 2018 CS 234 Module 6 ADT Dictionary 1 / 33 Idea for an ADT Te ADT Dictionary stores pairs (key, element), were keys are distinct and elements can be any data. Notes: Tis is

More information

AVL Trees Outline and Required Reading: AVL Trees ( 11.2) CSE 2011, Winter 2017 Instructor: N. Vlajic

AVL Trees Outline and Required Reading: AVL Trees ( 11.2) CSE 2011, Winter 2017 Instructor: N. Vlajic 1 AVL Trees Outline and Required Reading: AVL Trees ( 11.2) CSE 2011, Winter 2017 Instructor: N. Vlajic AVL Trees 2 Binary Searc Trees better tan linear dictionaries; owever, te worst case performance

More information

CS 234. Module 6. October 25, CS 234 Module 6 ADT Dictionary 1 / 22

CS 234. Module 6. October 25, CS 234 Module 6 ADT Dictionary 1 / 22 CS 234 Module 6 October 25, 2016 CS 234 Module 6 ADT Dictionary 1 / 22 Case study Problem: Find a way to store student records for a course, wit unique IDs for eac student, were records can be accessed,

More information

CE 221 Data Structures and Algorithms

CE 221 Data Structures and Algorithms CE Data Structures and Algoritms Capter 4: Trees (AVL Trees) Text: Read Weiss, 4.4 Izmir University of Economics AVL Trees An AVL (Adelson-Velskii and Landis) tree is a binary searc tree wit a balance

More information

Binary Search Tree - Best Time. AVL Trees. Binary Search Tree - Worst Time. Balanced and unbalanced BST

Binary Search Tree - Best Time. AVL Trees. Binary Search Tree - Worst Time. Balanced and unbalanced BST AL Trees CSE Data Structures Unit Reading: Section 4.4 Binary Searc Tree - Best Time All BST operations are O(d), were d is tree dept minimum d is d = log for a binary tree N wit N nodes at is te best

More information

CSE 332: Data Structures & Parallelism Lecture 8: AVL Trees. Ruth Anderson Winter 2019

CSE 332: Data Structures & Parallelism Lecture 8: AVL Trees. Ruth Anderson Winter 2019 CSE 2: Data Structures & Parallelism Lecture 8: AVL Trees Rut Anderson Winter 29 Today Dictionaries AVL Trees /25/29 2 Te AVL Balance Condition: Left and rigt subtrees of every node ave eigts differing

More information

Announcements. Lilian s office hours rescheduled: Fri 2-4pm HW2 out tomorrow, due Thursday, 7/7. CSE373: Data Structures & Algorithms

Announcements. Lilian s office hours rescheduled: Fri 2-4pm HW2 out tomorrow, due Thursday, 7/7. CSE373: Data Structures & Algorithms Announcements Lilian s office ours resceduled: Fri 2-4pm HW2 out tomorrow, due Tursday, 7/7 CSE373: Data Structures & Algoritms Deletion in BST 2 5 5 2 9 20 7 0 7 30 Wy migt deletion be arder tan insertion?

More information

Data Structures and Programming Spring 2014, Midterm Exam.

Data Structures and Programming Spring 2014, Midterm Exam. Data Structures and Programming Spring 2014, Midterm Exam. 1. (10 pts) Order te following functions 2.2 n, log(n 10 ), 2 2012, 25n log(n), 1.1 n, 2n 5.5, 4 log(n), 2 10, n 1.02, 5n 5, 76n, 8n 5 + 5n 2

More information

Lecture 7. Binary Search Trees / AVL Trees

Lecture 7. Binary Search Trees / AVL Trees Lecture 7. Binary Searc Trees / AVL Trees T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algoritms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Coo coo@skku.edu Copyrigt

More information

Wrap up Amortized Analysis; AVL Trees. Riley Porter Winter CSE373: Data Structures & Algorithms

Wrap up Amortized Analysis; AVL Trees. Riley Porter Winter CSE373: Data Structures & Algorithms CSE 373: Data Structures & Wrap up Amortized Analysis; AVL Trees Riley Porter Course Logistics Symposium offered by CSE department today HW2 released, Big- O, Heaps (lecture slides ave pseudocode tat will

More information

1 Copyright 2012 by Pearson Education, Inc. All Rights Reserved.

1 Copyright 2012 by Pearson Education, Inc. All Rights Reserved. CHAPTER 20 AVL Trees Objectives To know wat an AVL tree is ( 20.1). To understand ow to rebalance a tree using te LL rotation, LR rotation, RR rotation, and RL rotation ( 20.2). To know ow to design te

More information

15-122: Principles of Imperative Computation, Summer 2011 Assignment 6: Trees and Secret Codes

15-122: Principles of Imperative Computation, Summer 2011 Assignment 6: Trees and Secret Codes 15-122: Principles of Imperative Computation, Summer 2011 Assignment 6: Trees and Secret Codes William Lovas (wlovas@cs) Karl Naden Out: Tuesday, Friday, June 10, 2011 Due: Monday, June 13, 2011 (Written

More information

Advanced Tree. Structures. AVL Tree. Outline. AVL Tree Recall, Binary Search Tree (BST) is a special case of. Splay Tree (Ch 13.2.

Advanced Tree. Structures. AVL Tree. Outline. AVL Tree Recall, Binary Search Tree (BST) is a special case of. Splay Tree (Ch 13.2. ttp://1...0/csd/ Data tructure Capter 1 Advanced Tree tructures Dr. atrick Can cool of Computer cience and Engineering out Cina Universit of Tecnolog AVL Tree Recall, Binar earc Tree (BT) is a special

More information

Algorithms. AVL Tree

Algorithms. AVL Tree Algorithms AVL Tree Balanced binary tree The disadvantage of a binary search tree is that its height can be as large as N-1 This means that the time needed to perform insertion and deletion and many other

More information

Design Patterns for Data Structures. Chapter 10. Balanced Trees

Design Patterns for Data Structures. Chapter 10. Balanced Trees Capter 10 Balanced Trees Capter 10 Four eigt-balanced trees: Red-Black binary tree Faster tan AVL for insertion and removal Adelsen-Velskii Landis (AVL) binary tree Faster tan red-black for lookup B-tree

More information

Design Patterns for Data Structures. Chapter 10. Balanced Trees

Design Patterns for Data Structures. Chapter 10. Balanced Trees Capter 10 Balanced Trees Capter 10 Four eigt-balanced trees: Red-Black binary tree Faster tan AVL for insertion and removal Adelsen-Velskii Landis (AVL) binary tree Faster tan red-black for lookup B-tree

More information

Section 2.3: Calculating Limits using the Limit Laws

Section 2.3: Calculating Limits using the Limit Laws Section 2.3: Calculating Limits using te Limit Laws In previous sections, we used graps and numerics to approimate te value of a it if it eists. Te problem wit tis owever is tat it does not always give

More information

Data Structures and Algorithms

Data Structures and Algorithms Data Structures and Algorithms Spring 2009-2010 Outline BST Trees (contd.) 1 BST Trees (contd.) Outline BST Trees (contd.) 1 BST Trees (contd.) The bad news about BSTs... Problem with BSTs is that there

More information

TREES. General Binary Trees The Search Tree ADT Binary Search Trees AVL Trees Threaded trees Splay Trees B-Trees. UNIT -II

TREES. General Binary Trees The Search Tree ADT Binary Search Trees AVL Trees Threaded trees Splay Trees B-Trees. UNIT -II UNIT -II TREES General Binary Trees Te Searc Tree DT Binary Searc Trees VL Trees Treaded trees Splay Trees B-Trees. 2MRKS Q& 1. Define Tree tree is a data structure, wic represents ierarcical relationsip

More information

4.2 The Derivative. f(x + h) f(x) lim

4.2 The Derivative. f(x + h) f(x) lim 4.2 Te Derivative Introduction In te previous section, it was sown tat if a function f as a nonvertical tangent line at a point (x, f(x)), ten its slope is given by te it f(x + ) f(x). (*) Tis is potentially

More information

2 The Derivative. 2.0 Introduction to Derivatives. Slopes of Tangent Lines: Graphically

2 The Derivative. 2.0 Introduction to Derivatives. Slopes of Tangent Lines: Graphically 2 Te Derivative Te two previous capters ave laid te foundation for te study of calculus. Tey provided a review of some material you will need and started to empasize te various ways we will view and use

More information

4.1 Tangent Lines. y 2 y 1 = y 2 y 1

4.1 Tangent Lines. y 2 y 1 = y 2 y 1 41 Tangent Lines Introduction Recall tat te slope of a line tells us ow fast te line rises or falls Given distinct points (x 1, y 1 ) and (x 2, y 2 ), te slope of te line troug tese two points is cange

More information

AVL Trees. CSE260, Computer Science B: Honors Stony Brook University

AVL Trees. CSE260, Computer Science B: Honors Stony Brook University AVL Trees CSE260, Computer Science B: Honors Stony Brook University ttp://www.cs.stonybrook.edu/~cse260 1 Objectives To know wat an AVL tree is To understand ow to rebalance a tree using te LL rotation,

More information

CS 261 Data Structures. AVL Trees

CS 261 Data Structures. AVL Trees CS 261 Data Structures AVL Trees 1 Binary Search Tree Complexity of BST operations: proportional to the length of the path from a node to the root Unbalanced tree: operations may be O(n) E.g.: adding elements

More information

Part 2: Balanced Trees

Part 2: Balanced Trees Part 2: Balanced Trees 1 AVL Trees We could dene a perfectly balanced binary search tree with N nodes to be a complete binary search tree, one in which every level except the last is completely full. A

More information

LECTURE 18 AVL TREES

LECTURE 18 AVL TREES DATA STRUCTURES AND ALGORITHMS LECTURE 18 AVL TREES IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD PROTOTYPICAL EXAMPLES These two examples demonstrate how we can correct for imbalances: starting

More information

Bounding Tree Cover Number and Positive Semidefinite Zero Forcing Number

Bounding Tree Cover Number and Positive Semidefinite Zero Forcing Number Bounding Tree Cover Number and Positive Semidefinite Zero Forcing Number Sofia Burille Mentor: Micael Natanson September 15, 2014 Abstract Given a grap, G, wit a set of vertices, v, and edges, various

More information

Binary Trees. For example: Jargon: General Binary Trees. root node. level: internal node. edge. leaf node. Data Structures & File Management

Binary Trees. For example: Jargon: General Binary Trees. root node. level: internal node. edge. leaf node. Data Structures & File Management Binary Trees 1 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the root, which are disjoint from

More information

Hash-Based Indexes. Chapter 11. Comp 521 Files and Databases Spring

Hash-Based Indexes. Chapter 11. Comp 521 Files and Databases Spring Has-Based Indexes Capter 11 Comp 521 Files and Databases Spring 2010 1 Introduction As for any index, 3 alternatives for data entries k*: Data record wit key value k

More information

Binary Tree Node Relationships. Binary Trees. Quick Application: Expression Trees. Traversals

Binary Tree Node Relationships. Binary Trees. Quick Application: Expression Trees. Traversals Binary Trees 1 Binary Tree Node Relationships 2 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the

More information

AVL trees and rotations

AVL trees and rotations AVL trees and rotations Part of written assignment 5 Examine the Code of Ethics of the ACM Focus on property rights Write a short reaction (up to 1 page single-spaced) Details are in the assignment Operations

More information

Hash-Based Indexes. Chapter 11. Comp 521 Files and Databases Fall

Hash-Based Indexes. Chapter 11. Comp 521 Files and Databases Fall Has-Based Indexes Capter 11 Comp 521 Files and Databases Fall 2012 1 Introduction Hasing maps a searc key directly to te pid of te containing page/page-overflow cain Doesn t require intermediate page fetces

More information

Haar Transform CS 430 Denbigh Starkey

Haar Transform CS 430 Denbigh Starkey Haar Transform CS Denbig Starkey. Background. Computing te transform. Restoring te original image from te transform 7. Producing te transform matrix 8 5. Using Haar for lossless compression 6. Using Haar

More information

Tutorial AVL TREES. arra[5] = {1,2,3,4,5} arrb[8] = {20,30,80,40,10,60,50,70} FIGURE 1 Equivalent Binary Search and AVL Trees. arra = {1, 2, 3, 4, 5}

Tutorial AVL TREES. arra[5] = {1,2,3,4,5} arrb[8] = {20,30,80,40,10,60,50,70} FIGURE 1 Equivalent Binary Search and AVL Trees. arra = {1, 2, 3, 4, 5} 1 Tutorial AVL TREES Binary search trees are designed for efficient access to data. In some cases, however, a binary search tree is degenerate or "almost degenerate" with most of the n elements descending

More information

1.4 RATIONAL EXPRESSIONS

1.4 RATIONAL EXPRESSIONS 6 CHAPTER Fundamentals.4 RATIONAL EXPRESSIONS Te Domain of an Algebraic Epression Simplifying Rational Epressions Multiplying and Dividing Rational Epressions Adding and Subtracting Rational Epressions

More information

CS350: Data Structures AVL Trees

CS350: Data Structures AVL Trees S35: Data Structures VL Trees James Moscola Department of Engineering & omputer Science York ollege of Pennsylvania S35: Data Structures James Moscola Balanced Search Trees Binary search trees are not

More information

AVL Tree Definition. An example of an AVL tree where the heights are shown next to the nodes. Adelson-Velsky and Landis

AVL Tree Definition. An example of an AVL tree where the heights are shown next to the nodes. Adelson-Velsky and Landis Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 0 AVL Trees v 6 3 8 z 0 Goodrich, Tamassia, Goldwasser

More information

Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file.

Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file. Large Trees 1 Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file. Trees can also be used to store indices of the collection

More information

DATA STRUCTURES AND ALGORITHMS

DATA STRUCTURES AND ALGORITHMS LECTURE 13 Babeş - Bolyai University Computer Science and Mathematics Faculty 2017-2018 In Lecture 12... Binary Search Trees Binary Tree Traversals Huffman coding Binary Search Tree Today Binary Search

More information

CS211 Spring 2004 Lecture 06 Loops and their invariants. Software engineering reason for using loop invariants

CS211 Spring 2004 Lecture 06 Loops and their invariants. Software engineering reason for using loop invariants CS211 Spring 2004 Lecture 06 Loops and teir invariants Reading material: Tese notes. Weiss: Noting on invariants. ProgramLive: Capter 7 and 8 O! Tou ast damnale iteration and art, indeed, ale to corrupt

More information

Data Structures Lesson 7

Data Structures Lesson 7 Data Structures Lesson 7 BSc in Computer Science University of New York, Tirana Assoc. Prof. Dr. Marenglen Biba 1-1 Binary Search Trees For large amounts of input, the linear access time of linked lists

More information

CSI33 Data Structures

CSI33 Data Structures Outline Department of Mathematics and Computer Science Bronx Community College November 21, 2018 Outline Outline 1 C++ Supplement 1.3: Balanced Binary Search Trees Balanced Binary Search Trees Outline

More information

CHAPTER 7: TRANSCENDENTAL FUNCTIONS

CHAPTER 7: TRANSCENDENTAL FUNCTIONS 7.0 Introduction and One to one Functions Contemporary Calculus 1 CHAPTER 7: TRANSCENDENTAL FUNCTIONS Introduction In te previous capters we saw ow to calculate and use te derivatives and integrals of

More information

AVL Trees Goodrich, Tamassia, Goldwasser AVL Trees 1

AVL Trees Goodrich, Tamassia, Goldwasser AVL Trees 1 AVL Trees v 6 3 8 z 20 Goodrich, Tamassia, Goldwasser AVL Trees AVL Tree Definition Adelson-Velsky and Landis binary search tree balanced each internal node v the heights of the children of v can 2 3 7

More information

Solution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Spring Instructions:

Solution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Spring Instructions: VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Instructions: Print your name in the space provided below. This examination is closed book and closed notes, aside from the permitted

More information

More Binary Search Trees AVL Trees. CS300 Data Structures (Fall 2013)

More Binary Search Trees AVL Trees. CS300 Data Structures (Fall 2013) More Binary Search Trees AVL Trees bstdelete if (key not found) return else if (either subtree is empty) { delete the node replacing the parents link with the ptr to the nonempty subtree or NULL if both

More information

DATA STRUCTURES AND ALGORITHMS. Hierarchical data structures: AVL tree, Bayer tree, Heap

DATA STRUCTURES AND ALGORITHMS. Hierarchical data structures: AVL tree, Bayer tree, Heap DATA STRUCTURES AND ALGORITHMS Hierarchical data structures: AVL tree, Bayer tree, Heap Summary of the previous lecture TREE is hierarchical (non linear) data structure Binary trees Definitions Full tree,

More information

More BSTs & AVL Trees bstdelete

More BSTs & AVL Trees bstdelete More BSTs & AVL Trees bstdelete if (key not found) return else if (either subtree is empty) { delete the node replacing the parents link with the ptr to the nonempty subtree or NULL if both subtrees are

More information

AVL trees and rotations

AVL trees and rotations / AVL trees and rotations This week, you should be able to perform rotations on height-balanced trees, on paper and in code write a rotate() method search for the kth item in-order using rank } Term project

More information

MATH 5a Spring 2018 READING ASSIGNMENTS FOR CHAPTER 2

MATH 5a Spring 2018 READING ASSIGNMENTS FOR CHAPTER 2 MATH 5a Spring 2018 READING ASSIGNMENTS FOR CHAPTER 2 Note: Tere will be a very sort online reading quiz (WebWork) on eac reading assignment due one our before class on its due date. Due dates can be found

More information

More on Functions and Their Graphs

More on Functions and Their Graphs More on Functions and Teir Graps Difference Quotient ( + ) ( ) f a f a is known as te difference quotient and is used exclusively wit functions. Te objective to keep in mind is to factor te appearing in

More information

Generic BST Interface

Generic BST Interface Generic BST Interface Here s a partial generic BST interface: public class BST

More information

AVL Trees. See Section 19.4of the text, p

AVL Trees. See Section 19.4of the text, p AVL Trees See Section 19.4of the text, p. 706-714. AVL trees are self-balancing Binary Search Trees. When you either insert or remove a node the tree adjusts its structure so that the remains a logarithm

More information

COMP171. AVL-Trees (Part 1)

COMP171. AVL-Trees (Part 1) COMP11 AVL-Trees (Part 1) AVL Trees / Slide 2 Data, a set of elements Data structure, a structured set of elements, linear, tree, graph, Linear: a sequence of elements, array, linked lists Tree: nested

More information

Symmetric Tree Replication Protocol for Efficient Distributed Storage System*

Symmetric Tree Replication Protocol for Efficient Distributed Storage System* ymmetric Tree Replication Protocol for Efficient Distributed torage ystem* ung Cune Coi 1, Hee Yong Youn 1, and Joong up Coi 2 1 cool of Information and Communications Engineering ungkyunkwan University

More information

All truths are easy to understand once they are discovered; the point is to discover them. Galileo

All truths are easy to understand once they are discovered; the point is to discover them. Galileo Section 7. olume All truts are easy to understand once tey are discovered; te point is to discover tem. Galileo Te main topic of tis section is volume. You will specifically look at ow to find te volume

More information

CSCE476/876 Spring Homework 5

CSCE476/876 Spring Homework 5 CSCE476/876 Spring 2016 Assigned on: Friday, Marc 11, 2016 Due: Monday, Marc 28, 2016 Homework 5 Programming assignment sould be submitted wit andin Te report can eiter be submitted wit andin as a PDF,

More information

Announcements SORTING. Prelim 1. Announcements. A3 Comments 9/26/17. This semester s event is on Saturday, November 4 Apply to be a teacher!

Announcements SORTING. Prelim 1. Announcements. A3 Comments 9/26/17. This semester s event is on Saturday, November 4 Apply to be a teacher! Announcements 2 "Organizing is wat you do efore you do someting, so tat wen you do it, it is not all mixed up." ~ A. A. Milne SORTING Lecture 11 CS2110 Fall 2017 is a program wit a teac anyting, learn

More information

4.2 Binary Search Trees

4.2 Binary Search Trees Binary trees 4. Binary earc Trees Definition. BT is a binary tree in symmetric order. root a left link a subtree binary tree is eiter: mpty. rigt cild of root Two disjoint binary trees (left and rigt).

More information

ECE250: Algorithms and Data Structures AVL Trees (Part A)

ECE250: Algorithms and Data Structures AVL Trees (Part A) ECE250: Algorithms and Data Structures AVL Trees (Part A) Ladan Tahvildari, PEng, SMIEEE Associate Professor Software Technologies Applied Research (STAR) Group Dept. of Elect. & Comp. Eng. University

More information

Solution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Summer I Instructions:

Solution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Summer I Instructions: VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Instructions: Print your name in the space provided below. This examination is closed book and closed notes, aside from the permitted

More information

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key and satisfies the conditions:

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key and satisfies the conditions: 1 The general binary tree shown is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will) and the general binary tree does not have

More information

BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE

BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE CSI Section E01 AVL Trees AVL Property While BST structures have average performance of Θ(log(n))

More information

Balanced Binary Search Trees

Balanced Binary Search Trees Balanced Binary Search Trees Why is our balance assumption so important? Lets look at what happens if we insert the following numbers in order without rebalancing the tree: 3 5 9 12 18 20 1-45 2010 Pearson

More information

19.2 Surface Area of Prisms and Cylinders

19.2 Surface Area of Prisms and Cylinders Name Class Date 19 Surface Area of Prisms and Cylinders Essential Question: How can you find te surface area of a prism or cylinder? Resource Locker Explore Developing a Surface Area Formula Surface area

More information

Materials: Whiteboard, TI-Nspire classroom set, quadratic tangents program, and a computer projector.

Materials: Whiteboard, TI-Nspire classroom set, quadratic tangents program, and a computer projector. Adam Clinc Lesson: Deriving te Derivative Grade Level: 12 t grade, Calculus I class Materials: Witeboard, TI-Nspire classroom set, quadratic tangents program, and a computer projector. Goals/Objectives:

More information

Numerical Derivatives

Numerical Derivatives Lab 15 Numerical Derivatives Lab Objective: Understand and implement finite difference approximations of te derivative in single and multiple dimensions. Evaluate te accuracy of tese approximations. Ten

More information

AVL Trees / Slide 2. AVL Trees / Slide 4. Let N h be the minimum number of nodes in an AVL tree of height h. AVL Trees / Slide 6

AVL Trees / Slide 2. AVL Trees / Slide 4. Let N h be the minimum number of nodes in an AVL tree of height h. AVL Trees / Slide 6 COMP11 Spring 008 AVL Trees / Slide Balanced Binary Search Tree AVL-Trees Worst case height of binary search tree: N-1 Insertion, deletion can be O(N) in the worst case We want a binary search tree with

More information

3137 Data Structures and Algorithms in C++

3137 Data Structures and Algorithms in C++ 3137 Data Structures and Algorithms in C++ Lecture 4 July 17 2006 Shlomo Hershkop 1 Announcements please make sure to keep up with the course, it is sometimes fast paced for extra office hours, please

More information

2.8 The derivative as a function

2.8 The derivative as a function CHAPTER 2. LIMITS 56 2.8 Te derivative as a function Definition. Te derivative of f(x) istefunction f (x) defined as follows f f(x + ) f(x) (x). 0 Note: tis differs from te definition in section 2.7 in

More information

Fundamental Algorithms

Fundamental Algorithms WS 2007/2008 Fundamental Algorithms Dmytro Chibisov, Jens Ernst Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2007ws/fa-cse/ Fall Semester 2007 1. AVL Trees As we saw in the previous

More information

CS 2604 Data Structures Midterm Summer 2000 U T. Do not start the test until instructed to do so!

CS 2604 Data Structures Midterm Summer 2000 U T. Do not start the test until instructed to do so! VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Instructions: Print your name in the space provided below. This examination is closed book and closed notes. No calculators or other computing

More information

CS102 Binary Search Trees

CS102 Binary Search Trees CS102 Binary Search Trees Prof Tejada 1 To speed up insertion, removal and search, modify the idea of a Binary Tree to create a Binary Search Tree (BST) Binary Search Trees Binary Search Trees have one

More information

CSCI Trees. Mark Redekopp David Kempe

CSCI Trees. Mark Redekopp David Kempe CSCI 104 2-3 Trees Mark Redekopp David Kempe Trees & Maps/Sets C++ STL "maps" and "sets" use binary search trees internally to store their keys (and values) that can grow or contract as needed This allows

More information

12.2 Techniques for Evaluating Limits

12.2 Techniques for Evaluating Limits 335_qd /4/5 :5 PM Page 863 Section Tecniques for Evaluating Limits 863 Tecniques for Evaluating Limits Wat ou sould learn Use te dividing out tecnique to evaluate its of functions Use te rationalizing

More information

CmpSci 187: Programming with Data Structures Spring 2015

CmpSci 187: Programming with Data Structures Spring 2015 CmpSci 187: Programming with Data Structures Spring 2015 Lecture #17, Implementing Binary Search Trees John Ridgway April 2, 2015 1 Implementing Binary Search Trees Review: The BST Interface Binary search

More information

10/23/2013. AVL Trees. Height of an AVL Tree. Height of an AVL Tree. AVL Trees

10/23/2013. AVL Trees. Height of an AVL Tree. Height of an AVL Tree. AVL Trees // AVL Trees AVL Trees An AVL tree is a binary search tree with a balance condition. AVL is named for its inventors: Adel son-vel skii and Landis AVL tree approximates the ideal tree (completely balanced

More information

Data Structures in Java

Data Structures in Java Data Structures in Java Lecture 10: AVL Trees. 10/1/015 Daniel Bauer Balanced BSTs Balance condition: Guarantee that the BST is always close to a complete binary tree (every node has exactly two or zero

More information

3.6 Directional Derivatives and the Gradient Vector

3.6 Directional Derivatives and the Gradient Vector 288 CHAPTER 3. FUNCTIONS OF SEVERAL VARIABLES 3.6 Directional Derivatives and te Gradient Vector 3.6.1 Functions of two Variables Directional Derivatives Let us first quickly review, one more time, te

More information

Advanced Data Structures and Algorithms

Advanced Data Structures and Algorithms Advanced Data Structures and Algorithms CS 361 - Fall 2013 Lec. #09: Sorting Tamer Nadeem Dept. of Computer Science Class Objective/Overview Understand Declaration of Associative Container Familiarize

More information

SORTING 9/26/18. Prelim 1. Prelim 1. Why Sorting? InsertionSort. Some Sorting Algorithms. Tonight!!!! Two Sessions:

SORTING 9/26/18. Prelim 1. Prelim 1. Why Sorting? InsertionSort. Some Sorting Algorithms. Tonight!!!! Two Sessions: Prelim 1 2 "Organizing is wat you do efore you do someting, so tat wen you do it, it is not all mixed up." ~ A. A. Milne SORTING Tonigt!!!! Two Sessions: You sould now y now wat room to tae te final. Jenna

More information

Binary Search Tree: Balanced. Data Structures and Algorithms Emory University Jinho D. Choi

Binary Search Tree: Balanced. Data Structures and Algorithms Emory University Jinho D. Choi Binary Search Tree: Balanced Data Structures and Algorithms Emory University Jinho D. Choi Binary Search Tree Worst-case Complexity Search Insert Delete Unbalanced O(n) O(n) O(n) + α Balanced O(log n)

More information

You Try: A. Dilate the following figure using a scale factor of 2 with center of dilation at the origin.

You Try: A. Dilate the following figure using a scale factor of 2 with center of dilation at the origin. 1 G.SRT.1-Some Tings To Know Dilations affect te size of te pre-image. Te pre-image will enlarge or reduce by te ratio given by te scale factor. A dilation wit a scale factor of 1> x >1enlarges it. A dilation

More information

lecture17: AVL Trees

lecture17: AVL Trees lecture17: Largely based on slides by Cinda Heeren CS 225 UIUC 9th July, 2013 Announcements mt2 tonight! mp5.1 extra credit due Friday (7/12) An interesting tree Can you make a BST that looks like a zig

More information

Self-Balancing Search Trees. Chapter 11

Self-Balancing Search Trees. Chapter 11 Self-Balancing Search Trees Chapter 11 Chapter Objectives To understand the impact that balance has on the performance of binary search trees To learn about the AVL tree for storing and maintaining a binary

More information

Communicator for Mac Quick Start Guide

Communicator for Mac Quick Start Guide Communicator for Mac Quick Start Guide 503-968-8908 sterling.net training@sterling.net Pone Support 503.968.8908, option 2 pone-support@sterling.net For te most effective support, please provide your main

More information

H.O.#12 Fall 2015 Gary Chan. Binary Tree (N:12)

H.O.#12 Fall 2015 Gary Chan. Binary Tree (N:12) H.O.#12 Fall 2015 Gary Chan Binary Tree (N:12) Outline Binary tree terminology Tree traversals: preorder, inorder and postorder Dictionary and binary search tree Binary search tree operations Search min

More information

Binary search trees (chapters )

Binary search trees (chapters ) Binary search trees (chapters 18.1 18.3) Binary search trees In a binary search tree (BST), every node is greater than all its left descendants, and less than all its right descendants (recall that this

More information

CSCI-1200 Data Structures Fall 2017 Lecture 18 Trees, Part II

CSCI-1200 Data Structures Fall 2017 Lecture 18 Trees, Part II CSCI-1200 Data Structures Fall 2017 Lecture 18 Trees, Part II Review from Lecture 17 and Lab 9 Binary Trees, Binary Search Trees, & Balanced Trees STL set container class (like STL map, but without the

More information

Balanced Search Trees. CS 3110 Fall 2010

Balanced Search Trees. CS 3110 Fall 2010 Balanced Search Trees CS 3110 Fall 2010 Some Search Structures Sorted Arrays Advantages Search in O(log n) time (binary search) Disadvantages Need to know size in advance Insertion, deletion O(n) need

More information

, 1 1, A complex fraction is a quotient of rational expressions (including their sums) that result

, 1 1, A complex fraction is a quotient of rational expressions (including their sums) that result RT. Complex Fractions Wen working wit algebraic expressions, sometimes we come across needing to simplify expressions like tese: xx 9 xx +, xx + xx + xx, yy xx + xx + +, aa Simplifying Complex Fractions

More information

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya CS62: Foundations of Algorithm Design and Machine Learning Sourangshu Bhattacharya Binary Search Tree - Best Time All BST operations are O(d), where d is tree depth minimum d is d = ëlog for a binary tree

More information

Assignment 4 - AVL Binary Search Trees

Assignment 4 - AVL Binary Search Trees Assignment 4 - AVL Binary Search Trees MTE 140 - Data Structures and Algorithms DUE: July 22-11:59 PM 1 Introduction For this assignment, you will be implementing a basic AVL tree. AVL trees are an important

More information

Binary Trees. For example: Jargon: General Binary Trees. root node. level: internal node. edge. leaf node. Data Structures & File Management

Binary Trees. For example: Jargon: General Binary Trees. root node. level: internal node. edge. leaf node. Data Structures & File Management Binary Trees 1 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the root, which are disjoint from

More information

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya CS62: Foundations of Algorithm Design and Machine Learning Sourangshu Bhattacharya Balanced search trees Balanced search tree: A search-tree data structure for which a height of O(lg n) is guaranteed when

More information

When the dimensions of a solid increase by a factor of k, how does the surface area change? How does the volume change?

When the dimensions of a solid increase by a factor of k, how does the surface area change? How does the volume change? 8.4 Surface Areas and Volumes of Similar Solids Wen te dimensions of a solid increase by a factor of k, ow does te surface area cange? How does te volume cange? 1 ACTIVITY: Comparing Surface Areas and

More information

Dynamic Access Binary Search Trees

Dynamic Access Binary Search Trees Dynamic Access Binary Search Trees 1 * are self-adjusting binary search trees in which the shape of the tree is changed based upon the accesses performed upon the elements. When an element of a splay tree

More information

Investigating an automated method for the sensitivity analysis of functions

Investigating an automated method for the sensitivity analysis of functions Investigating an automated metod for te sensitivity analysis of functions Sibel EKER s.eker@student.tudelft.nl Jill SLINGER j..slinger@tudelft.nl Delft University of Tecnology 2628 BX, Delft, te Neterlands

More information

Dynamic Access Binary Search Trees

Dynamic Access Binary Search Trees Dynamic Access Binary Search Trees 1 * are self-adjusting binary search trees in which the shape of the tree is changed based upon the accesses performed upon the elements. When an element of a splay tree

More information