Algorithms. 演算法 Data Structures (focus on Trees)

Size: px
Start display at page:

Download "Algorithms. 演算法 Data Structures (focus on Trees)"

Transcription

1 演算法 Data Structures (focus on Trees) Professor Chien-Mo James Li 李建模 Graduate Institute of Electronics Engineering National Taiwan University 1 Dynamic Set Dynamic set is a set of elements that can grow or shrink over time Each element is represented by an object of two attributes key: a unique number/character to identify the object satellite data: carried around but not used in set operation Query operations SEARCH MINIMUM MAXIMUM SUCCESSOR PREDECESSOR Modifying operations INSERT DELETE 2

2 Outline Elementary Data Structures, CH10 Hash Table CH 11 * (not in exam) Binary Search Trees, CH12 Red Black Trees, CH13 3 Stack Last In First Out (LIFO) underflow: pop an empty stack overflow: push a full stack S.top S.top S.top 4

3 Stack Operations What are their time complexities? STACK-EMPTY(S) 1 if S.top == 0 2 return TRUE 3 else return FALSE PUSH(S, x) 1 S.top = S.top S[S.top] = x POP(S) 1 if STACK-EMPTY(S) 2 error underflow 3 else S.top = S.top 1 4 return S[S.top + 1] 5 First In First Out (FIFO) Queue leaves from head and enters from tail Fig (b) enqueue 17,3,5 (c) dequeue 15 Q.head Q.tail Q.tail Q.head Q.tail Q.head 6

4 Queue Operations What are their time complexities? ENQUEUE(Q, x) 1 Q[Q.tail] = x 2 if Q.tail == Q.length 3 Q.tail = 1 4 else Q.tail = Q.tail + 1 DEQUEUE(Q) 1 x = Q[Q.head] 2 if Q.head == Q.length 3 Q.head = 1 4 else Q.head = Q.head return x 7 Doubly Linked List An object has three attributes key, prev (pointer) and next (pointer) Fig 10.3 L.head L.head L.head 8

5 List Operations What are their time complexities? LIST-SEARCH(L, k) 1 x = L.head 2 while x NIL and x.key k 3 x = x.next 4 return x LIST-INSERT(L, x) 1 x.next = L.head 2 if L.head NIL 3 L.head.prev = x 4 L.head = x 5 x.prev = NIL LIST-DELETE(L, x) 1 if x.prev NIL 2 x.prev.next = x.next 3 else L.head = x.next 4 if x.next NIL 5 x.next.prev = x.prev 9 Linked List with Sentinels Sentinel is a dummy object for boundary condition simplification sentinel has no key, but has pointers L.nil points to the sentinel Fig 10.4 L.nil L.nil L.nil L.nil 10

6 List Operation w/ Sentinel Sentinel helps to make code easier Does sentinel help to improve complexity? LIST-SEARCH (L, k) 1 x = L.nil.next 2 while x L.nil and x.key k 3 x = x.next 4 return x LIST-INSERT (L, x) 1 x.next = L.nil.next 2 L.nil.next.prev = x 3 L.nil.next = x 4 x.prev = L.nil LIST-DELETE (L, x) 1 x.prev.next = x.next 2 x.next.prev = x.prev 11 Other Lists Singly linked list no previous pointer Sorted list elements are sorted by their keys Unsorted list elements are not sorted Circular list previous of head points to the tail next of tail points to the head 12

7 Outline Elementary Data Structures, CH10 Hash Table CH 11 (NOT in exam) Binary Search Trees, CH12 Red Black Trees, CH13 13 Hash Table Use hashing when universe of keys is very large Hash function: map key k is to slot h(k) Collision: two keys hashed to the same h(k) 14

8 Collision Resolution by Chaining Chaining: place all elements hashed to the same slot in a linked list 15 Outline Elementary Data Structures, CH10 Hash Table CH 11 Binary Search Trees, CH12 Red Black Trees, CH13 16

9 Representation of a Tree Each node x has 4 attributes x.key (and possibly other satellite data) x.left: points to x s left child. x.right: points to x s right child. x.p: points to x s parent. T.root points to the root of tree T ; T.root.p = NIL A node with no children is a leaf (or external node) T.root leaf 17 Binary Search Tree (BST) Binary Search Tree Property If y is in left subtree of x, then y.key x.key If y is in right subtree of x, then y.key x.key Height of node # of edges on longest downward path from the node to a leaf Height of tree = height of root Worst running time to search a BST is proportional to its height Example: (a) height = 2 (b) height =4, (b) is less efficient to search 18

10 Visit nodes in this order left-subtree, root, Right-subtree ITW sorts keys increasingly Example: 2, 3, 5, 5, 7, 8 Inorder Tree Walk Q1: are the results of (a) and (b) the same? Q2: what is time complexity? (see 12.1) 19 Preorder tree walk root, subtree Other Tree Walks Postorder tree walk subtree, root Q1: What is the postorder of the following trees? Q2: What is the order of keys? 20

11 Min. and Max. Always follow the left child minimum=2 Complexity = Θ(h) Always follow the right child maximum=20 Complexity = Θ(h) 21 Path to find 13: Complexity = Θ(h) Searching x.key 22

12 FFT Which version is better, recursive or iterative? x.key x.key x.key = x.left = x.right 23 Successor Assume all keys are distinct, successor of x is y if y.key is the smallest key x.key Successor of x = next key of x in inorder tree walk if x is the largest key, successor is NIL Example successor of 15 is 17 successor of 17 is 18 successor of 4 is 6 successor of 13 is? 24

13 Finding Successor case 1. If node x has non-empty right subtree, x s successor (y) is minimum in x s right subtree example: successor of 15 is 17 case 2. If node x has empty right subtree, x s successor (y) is the lowest ancestor of x y s left child is x s ancestor Example: successor of 4 is 6 // case 1 // case 2 // x==y.left 25 Predecessor Assume all keys are distinct, predecessor of x is y if y.key is the largest key < x.key Predecessor of x = previous key of x in inorder tree walk if x is the smallest key, predecessor is NIL Example predecessor of 15 is 13 predecessor of 7 is 6 predecessor of 17 is? 26

14 Exercises Q1: show successor time complexity = O(h) Hint: Theorem 12.2 Q2: please write predecessor algorithm hint: symmetric to successor 27 Insertion Insert z into BST Beginning at root, trace downward x: traces the downward path looking for NIL to insert z y is trailing pointer, parent of x. When z.key < x.key trace left subtree otherwise, trace right subtree When x is NIL, it is the position for z Compare z s value with y s value, z.key < y.key: insert z at y s left z.key > y.key: insert z at y s right // empty tree Time complexity = Θ(h) 28

15 Insertion Example Insert 14 Insert Deletion Examples z is deleted: (a) z has no child, (b) z has 1 child, (c) z has 2 children 30

16 Deletion (case 1, 2) case 1. If z has no children, just remove z case 2. If z has just one child, child take z s position, dragging the child s subtree along. Fig 12.4 (a) Fig 12.4 (b) 31 Deletion (case 3) case 3. If z has two children, find z s successor y 3a: If y is z s right child, replace z by y (leave y s right child alone) Fig 12.4 (c) 3b. Otherwise, replace y by x (y s right child), replace z by y Fig 12.4 (d) 32

17 Tree-Delete* *this algorithm is different from 2nd ed. case 1+2 case 3 case 3b: replace y by x case 3a: replace z by y 33 Transplant Replace the subtree rooted at u by the subtree rooted at v Time complexity = Θ(1) 34

18 Exercise Case 1: Delete A Case 2: Delete G Case 3a: Delete K Case 3b: Delete B 35 TRANSPLANT = Θ(1) TREE-MINIMUM = Θ(h) other lines = Θ(1) Complexity Analysis over all = Θ(h) 36

19 Why does y not have left child? FFT 37 Summary BST supports all dynamic set operations in Θ (h) SEARCH INSERT DELETE MINIMUM MAXIMUM SUCCESSOR PREDECESSOR CH 12.4 shows the expected tree height is O(lg n) but what about the worst case? is there a smart algorithm that guarantee h=lg(n) in worst case? 38

20 Outline Elementary Data Structures, CH10 Hash Table CH 11 Binary Search Trees, CH12 Red Black Trees, CH13 39 Red-black Tree A red-black tree is a binary search tree plus an attribute color red-black tree is approximately balanced Red-black tree must satisfy five properties: 1. Every node is either red or black 2. Root is black 3. Every leaf (T.nil) is black 4. If a node is red, then both its children are black Hence, no two consecutive reds on a path from root to a leaf 5. All paths from a node to descendant leaves contain the same number of black nodes i.e. black height of a node is unique 40

21 Height of node x, h(x): Black Height number of edges in a longest path from node x to a leaf Black height of node x, bh(x): number of black nodes on the path from node x to leaf, including T.nil not counting x itself T.root 41 Fig Red-Black Tree Example T.nil 42

22 FFT Why R&B tree is (approx. ) balanced? 43 What is T.nil? Sentinel T.nil is a dummy object that represents NIL T.nil has five attributes p, left, right, and key color is black Only one T.nil for the whole tree to save space Use T.nil helps to make boundary condition easier will see later T.nil is usually not plotted in the tree 44

23 Two Claims Claim 1: For any node x, bh(x) h(x)/2 By property 4, fewer than h(x)/2 nodes are red Hence, more than bh(x)/2 are black Claim2: Subtree rooted at node x contains more than 2 bh(x) -1 nodes math induction: 1. x is leaf, bh(x) =0, subtree contains zero nodes 2. Any child of x has black-height either bh(x) (if the child is red) or bh(x)-1 (if the child is black) By hypothesis, each child contains 2 bh(x)-1-1 internal nodes Thus, the subtree rooted at x contains 2(2 bh(x)-1-1)+1 = 2 bh(x) -1internal nodes +1 is x itself 45 Lemma 13.1 A red-black tree with n internal nodes has height h 2 lg (n +1) according to above two claims, at root n h 2 bh( root) 1 2lg( n + 1) 2 h( root) / 2 1 = 2 h / 2 1 Hence, red-black tree is approximately balanced height is at most twice minimum SEARCH, MIN, MAX, PRECEDESSOR, SUCCESSOR all query operations are O(h)= O(lg (n)) how about insertion and deletion? must maintain the red-black tree properties 46

24 Rotation Rotation is a local operation for binary search trees left/right rotations. they are inverse of each other preserve BST property does not change order Example: Fig inorder walk: α, x, β, y, γ unchanged after left/right rotation 47 Left-Rotate // β assume y T.nil y.p x.p time complexity = O(1) 48

25 Left-Rotate Example inorder tree walk unchanged 49 Exercise Please write pseudo code for right-rotate hint: exchange left and right 50

26 Insertion insert node z four differences 51 Keep RB Tree Properties Assign red color to inserted node, z.color = red, any violation? 1. Every node is either red or black OK 2. The root is black OK, unless z is root 3. Every leaf (T.nil) is black OK 4. If a node is red, then both its children are black if z.p is red, two reds can be in a row, violation! how to fixup? check uncle s color 5. For each node, black height is unique OK, why? Color fixup: move the extra red from z up the tree until it reaches the root simply paint the root black suitable rotation and recoloring is performed to ensure all properties are preserved below z 52

27 Case 1: If uncle y is red Fixup: Case 1 paint z s parent (A) and uncle (D) black paint z s gradparent (C) red move new z up two levels keep checking upwards Fig Fixup: Case 2, 3 Case 2: If uncle y is black and z is a right child left rotate around z.p (A) turn into case 3 Case 3: If uncle y is black and z is a left child paint parent z.p (B) black and grandparent z.p.p (C) red right rotate on z.p.p (C) no more iterations Fig

28 Exercise Try to insert Too Many Cases? How can I remember so many cases? 55 Fixup Algorithm // y is uncle 56

29 Loop Invariant At the start of each iteration of the while loop, z is red There is at most one red-black violation: Property 2: z is a red root, or Property 4: z and z.p are both red. Initialization: We already seen why the loop invariant holds initially. Termination: The loop terminates because z.p is black. Hence, property 4 is OK. Only property 2 might be violated, the last line fixes it. Maintenance: When we start the loop body, the only violation is property 4 need to consider 6 cases 3 cases are symmetric 57 Complexity of RB-Insert RB-Insert-Fixup O(lg n) no more than two rotations RB-Insert O(lg n) 58

30 RB-Insert-Fixup Example Fig Exercise Please finish the other 3 cases of RB-INSERT-FIXUP algorithm 60

31 Tree-Delete (Review) case 1 (z has no child): remove z case 2 (z has one child): replace z by its own successor case 3 (z has two child): y = z s successor 3a: If y is z s right child, replace z by y 3b. Otherwise, replace y by x then replace z by y 61 RB-Delete case1,2 z has < 2 child y=z x=y s child *different from 2nd ed. y x x x y x Because y(=z) is removed, y s original color is gone color fixup from node x 62

32 RB-Delete case 3 z has 2 children y = z s successor x = y s successor replace y by x y inherits z s color, y s original color is gone color fixup from node x replace z by y y inherits z s color 63 Delete Fixup If y originally was red, no violation why? If y originally was black, push the black onto its only child x what if x is already black? it becomes doubly black violation! Color fixup: move the doubly black from x up the tree until 1. x points to a red node, simply color it black 2. x points to the root, simply remove doubly black suitable rotation and recoloring is performed to ensure all properties are preserved below x 64

33 Case 1: x s sibling w is red w must have black children. Fixup Case 1 Make w (D) black and x.p (B) red. Left rotate on x.p (B). x s new sibling (C) is black new w is now C Go immediately to case 2, 3, or 4 Fig Fixup Case 2 Case 2: w is black and both w s children are black Take one black off x (doubly black singly black) and also take one black off w (black red). Move that one black up to x.p (B) new x is now B If B is red, color it black and terminates otherwise, keep going up and do the next iteration 66

34 Fixup Case 3 Case 3: w is black, w s left child (C) is red and right child (E) is black Make w (D) red and w s left child (C) black Then right rotate on w (D). New sibling of x (C) is black with a red right child (D) new w is now C becomes case 4 67 Fixup Case 4 Case 4: w is black, w s right child (E) is red, w s left child (C) is don t care Make w (D) be x.p s (B) color (D.color = B.color) Make x.p (B) black and w s right child (E) black Left rotate on x.p (B) Remove the extra black on x Setting x to root causes the loop to terminate 68

35 Too Many Cases? How can I remember so many cases? Any real life example? 69 70

36 Complexity of RB-Delete O(lg n) time to get through RB-DELETE up to RB-DELETE-FIXUP. Within RB-DELETE-FIXUP: Case 2 is the only case in which more iterations occur. x moves up 1 level, O(lg n) iterations. Each of cases 1, 3, and 4 has 1 rotation less than 3 rotations in all. Totally,O(lg n) time. 71 FFT in case 3a, since x = y.right x.p=y is redundant? redundant??? 72

37 RB-Transplant Make two differences for RB tree RB-TRANSPLANT references T.nil v.p = u.p, even if v is the sentinel T.nil can trace from T.nil up to its parent correctly fixup exploits this feature 73 Other Self-balancing BST The idea of balancing a BST is due to Adel son Verl skii and Landis AVL tree AA-tree Treaps Splay tree 74

38 Reading CH10 (optional) CH 12, CH 13 Appendix B.5 RB-tree 的 Demo 程式 可以一步一步 demo 如何加入及删除 好玩! 請試試看 75

CS 380 ALGORITHM DESIGN AND ANALYSIS

CS 380 ALGORITHM DESIGN AND ANALYSIS CS 380 ALGORITHM DESIGN AND ANALYSIS Lecture 12: Red-Black Trees Text Reference: Chapters 12, 13 Binary Search Trees (BST): Review Each node in tree T is a object x Contains attributes: Data Pointers to

More information

Search Trees. Undirected graph Directed graph Tree Binary search tree

Search Trees. Undirected graph Directed graph Tree Binary search tree Search Trees Undirected graph Directed graph Tree Binary search tree 1 Binary Search Tree Binary search key property: Let x be a node in a binary search tree. If y is a node in the left subtree of x, then

More information

Chapter 3. Graphs CLRS Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Chapter 3. Graphs CLRS Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. Chapter 3 Graphs CLRS 12-13 Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 57 CLRS 12 Binary Search Trees Binary Search Trees The search tree data structure supports

More information

Binary search trees. Binary search trees are data structures based on binary trees that support operations on dynamic sets.

Binary search trees. Binary search trees are data structures based on binary trees that support operations on dynamic sets. COMP3600/6466 Algorithms 2018 Lecture 12 1 Binary search trees Reading: Cormen et al, Sections 12.1 to 12.3 Binary search trees are data structures based on binary trees that support operations on dynamic

More information

Binary search trees (BST) Binary search trees (BST)

Binary search trees (BST) Binary search trees (BST) Tree A tree is a structure that represents a parent-child relation on a set of object. An element of a tree is called a node or vertex. The root of a tree is the unique node that does not have a parent

More information

CSE2331/5331. Topic 6: Binary Search Tree. Data structure Operations CSE 2331/5331

CSE2331/5331. Topic 6: Binary Search Tree. Data structure Operations CSE 2331/5331 CSE2331/5331 Topic 6: Binary Search Tree Data structure Operations Set Operations Maximum Extract-Max Insert Increase-key We can use priority queue (implemented by heap) Search Delete Successor Predecessor

More information

Algorithms, Spring 2014, CSE, OSU Lecture 5: Red-black trees

Algorithms, Spring 2014, CSE, OSU Lecture 5: Red-black trees 6331 - Algorithms, Spring 2014, CSE, OSU Lecture 5: Red-black trees Instructor: Anastasios Sidiropoulos January 17, 2014 Red-black trees For every node x: x.color : red or black x.k : key x.p : pointer

More information

Lecture 6: Analysis of Algorithms (CS )

Lecture 6: Analysis of Algorithms (CS ) Lecture 6: Analysis of Algorithms (CS583-002) Amarda Shehu October 08, 2014 1 Outline of Today s Class 2 Traversals Querying Insertion and Deletion Sorting with BSTs 3 Red-black Trees Height of a Red-black

More information

Binary search trees 3. Binary search trees. Binary search trees 2. Reading: Cormen et al, Sections 12.1 to 12.3

Binary search trees 3. Binary search trees. Binary search trees 2. Reading: Cormen et al, Sections 12.1 to 12.3 Binary search trees Reading: Cormen et al, Sections 12.1 to 12.3 Binary search trees 3 Binary search trees are data structures based on binary trees that support operations on dynamic sets. Each element

More information

3. Fundamental Data Structures

3. Fundamental Data Structures 3. Fundamental Data Structures CH08-320201: Algorithms and Data Structures 233 Data Structures Definition (recall): A data structure is a way to store and organize data in order to facilitate access and

More information

Algorithms. Red-Black Trees

Algorithms. Red-Black Trees Algorithms Red-Black Trees Red-Black Trees Balanced binary search trees guarantee an O(log n) running time Red-black-tree Binary search tree with an additional attribute for its nodes: color which can

More information

Different binary search trees can represent the same set of values (Fig.2). Vladimir Shelomovskii, Unitech, Papua New Guinea. Binary search tree.

Different binary search trees can represent the same set of values (Fig.2). Vladimir Shelomovskii, Unitech, Papua New Guinea. Binary search tree. 1 Vladimir Shelomovskii, Unitech, Papua New Guinea, CS411 Binary search tree We can represent a binary search tree by a linked data structure in which each node is an object. Each node contains (Fig.1):

More information

Lecture: Analysis of Algorithms (CS )

Lecture: Analysis of Algorithms (CS ) Lecture: Analysis of Algorithms (CS583-002) Amarda Shehu Fall 2017 1 Binary Search Trees Traversals, Querying, Insertion, and Deletion Sorting with BSTs 2 Example: Red-black Trees Height of a Red-black

More information

Chapter 13. Michelle Bodnar, Andrew Lohr. April 12, 2016

Chapter 13. Michelle Bodnar, Andrew Lohr. April 12, 2016 Chapter 13 Michelle Bodnar, Andrew Lohr April 1, 016 Exercise 13.1-1 8 4 1 6 10 14 1 3 5 7 9 11 13 15 We shorten IL to so that it can be more easily displayed in the document. The following has black height.

More information

ץע A. B C D E F G H E, B ( -.) - F I J K ) ( A :. : ע.)..., H, G E (. י : י.)... C,A,, F B ( 2

ץע A. B C D E F G H E, B ( -.) - F I J K ) ( A :. : ע.)..., H, G E (. י : י.)... C,A,, F B ( 2 נת ני ני, 1 עץ E A B C D F G H I J K. E B, ( -.)F- )A( : ע :..)...H,G,E (. י י:.)...C,A,F,B ( 2 עץ E A B C D F G H I J K v : -,w w.v- w-.v :v ע. v- B- 3 ע E A B C D F G H I J K ע - v,1 B ( v-.)? A 4 E

More information

CS532: Design and Analysis of Algorithms. Overview. Linked Lists. Data Structures Intro. Classes, Objects, and Pointers.

CS532: Design and Analysis of Algorithms. Overview. Linked Lists. Data Structures Intro. Classes, Objects, and Pointers. CS533 Class 01: 1 c P. Heeman, 2017 What is the Course About? Data Structures Intro Classes, Objects, and Pointers Linked Lists Rooted Trees Overview CS533 Class 01: 2 c P. Heeman, 2017 CS532: Design and

More information

Binary Search Trees. July 13th, Computer Information Systems. c 2009 Vaidė Narváez

Binary Search Trees. July 13th, Computer Information Systems. c 2009 Vaidė Narváez Binary Search Trees Vaidė Narváez Computer Information Systems July 13th, 2010 Introduction Dynamic set operations: Search, Minimum, Maximum Predecessor, Successor Insert, Delete Time proportional to the

More information

Balanced search trees

Balanced search trees Balanced search trees Ordinary binary search trees have expected height Θ(log n) if items are inserted and deleted in random order, but for other orders the height can be Θ(n). This is undesirable, since

More information

Red-Black Trees. Based on materials by Dennis Frey, Yun Peng, Jian Chen, and Daniel Hood

Red-Black Trees. Based on materials by Dennis Frey, Yun Peng, Jian Chen, and Daniel Hood Red-Black Trees Based on materials by Dennis Frey, Yun Peng, Jian Chen, and Daniel Hood Quick Review of Binary Search Trees n Given a node n... q All elements of n s left subtree are less than n.data q

More information

Properties of red-black trees

Properties of red-black trees Red-Black Trees Introduction We have seen that a binary search tree is a useful tool. I.e., if its height is h, then we can implement any basic operation on it in O(h) units of time. The problem: given

More information

Elementary Data Structures and Hash Tables

Elementary Data Structures and Hash Tables Elementary Data Structures and Hash Tables Antonio Carzaniga Faculty of Informatics Università della Svizzera italiana March 23, 2016 Outline Common concepts and notation Stacks Queues Linked lists Trees

More information

Algorithms and Data Structures for Mathematicians

Algorithms and Data Structures for Mathematicians Algorithms and Data Structures for Mathematicians Lecture 3: Basic Data Structures Peter Kostolányi kostolanyi at fmph and so on Room M-258 12 October 2017 Dynamic Sets and Data Structures Many algorithms

More information

Red-Black Trees (2) Antonio Carzaniga. April 23, Faculty of Informatics Università della Svizzera italiana Antonio Carzaniga

Red-Black Trees (2) Antonio Carzaniga. April 23, Faculty of Informatics Università della Svizzera italiana Antonio Carzaniga Red-Black Trees (2) Antonio Carzaniga Faculty of Informatics Università della Svizzera italiana April 23, 2013 Recap on Red-Black Trees 2006 Antonio Carzaniga Recap on Red-Black Trees 12 5 18 2 9 15 19

More information

Red-Black Trees. 1 Properties of red-black trees

Red-Black Trees. 1 Properties of red-black trees Red-Black Trees Chapter 12 showed that a binary search tree of height h can support any of the basic dynamic-set operations such as SEARCH, PREDECESSOR, SUCCESSOR, MINI- MUM, MAXIMUM, INSERT, anddelete

More information

Quiz 1 Solutions. (a) f(n) = n g(n) = log n Circle all that apply: f = O(g) f = Θ(g) f = Ω(g)

Quiz 1 Solutions. (a) f(n) = n g(n) = log n Circle all that apply: f = O(g) f = Θ(g) f = Ω(g) Introduction to Algorithms March 11, 2009 Massachusetts Institute of Technology 6.006 Spring 2009 Professors Sivan Toledo and Alan Edelman Quiz 1 Solutions Problem 1. Quiz 1 Solutions Asymptotic orders

More information

Announcements. Problem Set 2 is out today! Due Tuesday (Oct 13) More challenging so start early!

Announcements. Problem Set 2 is out today! Due Tuesday (Oct 13) More challenging so start early! CSC263 Week 3 Announcements Problem Set 2 is out today! Due Tuesday (Oct 13) More challenging so start early! NOT This week ADT: Dictionary Data structure: Binary search tree (BST) Balanced BST - AVL tree

More information

We assume uniform hashing (UH):

We assume uniform hashing (UH): We assume uniform hashing (UH): the probe sequence of each key is equally likely to be any of the! permutations of 0,1,, 1 UH generalizes the notion of SUH that produces not just a single number, but a

More information

Course Review for. Cpt S 223 Fall Cpt S 223. School of EECS, WSU

Course Review for. Cpt S 223 Fall Cpt S 223. School of EECS, WSU Course Review for Midterm Exam 1 Cpt S 223 Fall 2011 1 Midterm Exam 1 When: Friday (10/14) 1:10-2pm Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & in-class

More information

if (Q.head = Q.tail + 1) or (Q.head = 1 and Q.tail = Q.length) then throw F ullqueueexception if (Q.head = Q.tail) then throw EmptyQueueException

if (Q.head = Q.tail + 1) or (Q.head = 1 and Q.tail = Q.length) then throw F ullqueueexception if (Q.head = Q.tail) then throw EmptyQueueException data structures en algorithms 2017-2018 exercise class 7: some answers Goal Understanding of the linear data structures stacks, queues, linked lists. Understanding of linked representations of (mainly

More information

Trees. (Trees) Data Structures and Programming Spring / 28

Trees. (Trees) Data Structures and Programming Spring / 28 Trees (Trees) Data Structures and Programming Spring 2018 1 / 28 Trees A tree is a collection of nodes, which can be empty (recursive definition) If not empty, a tree consists of a distinguished node r

More information

Data Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved.

Data Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved. Data Structures Outline Introduction Linked Lists Stacks Queues Trees Introduction dynamic data structures - grow and shrink during execution Linked lists - insertions and removals made anywhere Stacks

More information

III Data Structures. Dynamic sets

III Data Structures. Dynamic sets III Data Structures Elementary Data Structures Hash Tables Binary Search Trees Red-Black Trees Dynamic sets Sets are fundamental to computer science Algorithms may require several different types of operations

More information

Binary Trees. Recursive definition. Is this a binary tree?

Binary Trees. Recursive definition. Is this a binary tree? Binary Search Trees Binary Trees Recursive definition 1. An empty tree is a binary tree 2. A node with two child subtrees is a binary tree 3. Only what you get from 1 by a finite number of applications

More information

Copyright 1998 by Addison-Wesley Publishing Company 147. Chapter 15. Stacks and Queues

Copyright 1998 by Addison-Wesley Publishing Company 147. Chapter 15. Stacks and Queues Copyright 1998 by Addison-Wesley Publishing Company 147 Chapter 15 Stacks and Queues Copyright 1998 by Addison-Wesley Publishing Company 148 tos (-1) B tos (1) A tos (0) A A tos (0) How the stack routines

More information

CSE 502 Class 16. Jeremy Buhler Steve Cole. March A while back, we introduced the idea of collections to put hash tables in context.

CSE 502 Class 16. Jeremy Buhler Steve Cole. March A while back, we introduced the idea of collections to put hash tables in context. CSE 502 Class 16 Jeremy Buhler Steve Cole March 17 2015 Onwards to trees! 1 Collection Types Revisited A while back, we introduced the idea of collections to put hash tables in context. abstract data types

More information

CSE2331/5331. Topic 7: Balanced search trees. Rotate operation Red-black tree Augmenting data struct. CSE 2331/5331

CSE2331/5331. Topic 7: Balanced search trees. Rotate operation Red-black tree Augmenting data struct. CSE 2331/5331 CSE2331/5331 Topic 7: Balanced search trees Rotate operation Red-black tree Augmenting data struct. Set Operations Maximum Extract-Max Insert Increase-key Search Delete Successor Predecessor Motivation

More information

Graduate Algorithms CS F-07 Red/Black Trees

Graduate Algorithms CS F-07 Red/Black Trees Graduate Algorithms CS673-2016F-07 Red/lack Trees David Galles Department of Computer Science University of San Francisco 07-0: inary Search Trees inary Trees For each node n, (value stored at node n)

More information

A red-black tree is a balanced binary search tree with the following properties:

A red-black tree is a balanced binary search tree with the following properties: Binary search trees work best when they are balanced or the path length from root to any leaf is within some bounds. The red-black tree algorithm is a method for balancing trees. The name derives from

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

Jana Kosecka. Red-Black Trees Graph Algorithms. Many slides here are based on E. Demaine, D. Luebke slides

Jana Kosecka. Red-Black Trees Graph Algorithms. Many slides here are based on E. Demaine, D. Luebke slides Jana Kosecka Red-Black Trees Graph Algorithms Many slides here are based on E. Demaine, D. Luebke slides Binary Search Trees (BSTs) are an important data structure for dynamic sets In addition to satellite

More information

CS350: Data Structures Red-Black Trees

CS350: Data Structures Red-Black Trees Red-Black Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Red-Black Tree An alternative to AVL trees Insertion can be done in a bottom-up or

More information

ECE250: Algorithms and Data Structures Midterm Review

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

More information

data structures and algorithms lecture 6

data structures and algorithms lecture 6 data structures and algorithms 2017 09 21 lecture 6 overview lower bound counting sort radix sort stacks queues material question we have seen for example insertion sort: worst-case in O(n 2 ) merge sort:

More information

Course Review. Cpt S 223 Fall 2009

Course Review. Cpt S 223 Fall 2009 Course Review Cpt S 223 Fall 2009 1 Final Exam When: Tuesday (12/15) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program

More information

Red-Black Trees (2) Antonio Carzaniga. Faculty of Informatics University of Lugano. April 26, Antonio Carzaniga 1

Red-Black Trees (2) Antonio Carzaniga. Faculty of Informatics University of Lugano. April 26, Antonio Carzaniga 1 Red-lack Trees (2) ntonio arzaniga Faculty of Informatics University of Lugano pril 26, 2012 2006 ntonio arzaniga 1 Recap on Red-lack Trees 12 5 18 2 9 15 19 4 13 17 Red-black-tree property 2. 4. 5. 1.

More information

Cpt S 223 Fall Cpt S 223. School of EECS, WSU

Cpt S 223 Fall Cpt S 223. School of EECS, WSU Course Review Cpt S 223 Fall 2012 1 Final Exam When: Monday (December 10) 8 10 AM Where: in class (Sloan 150) Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes

More information

Course Review. Cpt S 223 Fall 2010

Course Review. Cpt S 223 Fall 2010 Course Review Cpt S 223 Fall 2010 1 Final Exam When: Thursday (12/16) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program

More information

Basic Data Structures (Version 7) Name:

Basic Data Structures (Version 7) Name: Prerequisite Concepts for Analysis of Algorithms Basic Data Structures (Version 7) Name: Email: Concept: mathematics notation 1. log 2 n is: Code: 21481 (A) o(log 10 n) (B) ω(log 10 n) (C) Θ(log 10 n)

More information

Algorithms. Deleting from Red-Black Trees B-Trees

Algorithms. Deleting from Red-Black Trees B-Trees Algorithms Deleting from Red-Black Trees B-Trees Recall the rules for BST deletion 1. If vertex to be deleted is a leaf, just delete it. 2. If vertex to be deleted has just one child, replace it with that

More information

Binary Tree. Preview. Binary Tree. Binary Tree. Binary Search Tree 10/2/2017. Binary Tree

Binary Tree. Preview. Binary Tree. Binary Tree. Binary Search Tree 10/2/2017. Binary Tree 0/2/ Preview Binary Tree Tree Binary Tree Property functions In-order walk Pre-order walk Post-order walk Search Tree Insert an element to the Tree Delete an element form the Tree A binary tree is a tree

More information

CISC 235: Topic 4. Balanced Binary Search Trees

CISC 235: Topic 4. Balanced Binary Search Trees CISC 235: Topic 4 Balanced Binary Search Trees Outline Rationale and definitions Rotations AVL Trees, Red-Black, and AA-Trees Algorithms for searching, insertion, and deletion Analysis of complexity CISC

More information

Algorithms, Spring 2014, CSE, OSU Lecture 4: Binary search trees

Algorithms, Spring 2014, CSE, OSU Lecture 4: Binary search trees 6331 - Algorithms, Spring 2014, CSE, OSU Lecture 4: Binary search trees Instructor: Anastasios Sidiropoulos January 15, 2014 Binary search trees For every node x: x.k : key x.p : pointer to the parent

More information

Computational Optimization ISE 407. Lecture 16. Dr. Ted Ralphs

Computational Optimization ISE 407. Lecture 16. Dr. Ted Ralphs Computational Optimization ISE 407 Lecture 16 Dr. Ted Ralphs ISE 407 Lecture 16 1 References for Today s Lecture Required reading Sections 6.5-6.7 References CLRS Chapter 22 R. Sedgewick, Algorithms in

More information

Algorithms and Data Structures (INF1) Lecture 8/15 Hua Lu

Algorithms and Data Structures (INF1) Lecture 8/15 Hua Lu Algorithms and Data Structures (INF1) Lecture 8/15 Hua Lu Department of Computer Science Aalborg University Fall 2007 This Lecture Trees Basics Rooted trees Binary trees Binary tree ADT Tree traversal

More information

Week 8. BinaryTrees. 1 Binary trees. 2 The notion of binary search tree. 3 Tree traversal. 4 Queries in binary search trees. 5 Insertion.

Week 8. BinaryTrees. 1 Binary trees. 2 The notion of binary search tree. 3 Tree traversal. 4 Queries in binary search trees. 5 Insertion. Week 8 Binarys 1 2 3 4 5 6 7 General remarks We consider, another important data structure. We learn how to use them, by making efficient queries. And we learn how to build them. Reading from CLRS for

More information

Week 8. BinaryTrees. 1 Binary trees. 2 The notion of binary search tree. 3 Tree traversal. 4 Queries in binary search trees. 5 Insertion.

Week 8. BinaryTrees. 1 Binary trees. 2 The notion of binary search tree. 3 Tree traversal. 4 Queries in binary search trees. 5 Insertion. Week 8 Binarys 1 2 of 3 4 of 5 6 7 General remarks We consider, another important data structure. We learn how to use them, by making efficient queries. And we learn how to build them. Reading from CLRS

More information

Binary Search Tree. Sorting and Searching in a Dynamic Set. S.V. N. (vishy) Vishwanathan. University of California, Santa Cruz

Binary Search Tree. Sorting and Searching in a Dynamic Set. S.V. N. (vishy) Vishwanathan. University of California, Santa Cruz Binary Search Tree Sorting and Searching in a Dynamic Set S.V. N. (vishy) Vishwanathan University of California, Santa Cruz vishy@ucsc.edu February 29, 2016 S.V. N. Vishwanathan (UCSC) CMPS101 1 / 23 Outline

More information

CS301 - Data Structures Glossary By

CS301 - Data Structures Glossary By CS301 - Data Structures Glossary By Abstract Data Type : A set of data values and associated operations that are precisely specified independent of any particular implementation. Also known as ADT Algorithm

More information

Binary Search Trees. Antonio Carzaniga. Faculty of Informatics University of Lugano. October 21, Antonio Carzaniga 1

Binary Search Trees. Antonio Carzaniga. Faculty of Informatics University of Lugano. October 21, Antonio Carzaniga 1 Binary Search Trees Antonio Carzaniga Faculty of Informatics University of Lugano October 21, 2010 2006 Antonio Carzaniga 1 Binary search trees Outline Randomized binary search trees 2006 Antonio Carzaniga

More information

Course Review for Finals. Cpt S 223 Fall 2008

Course Review for Finals. Cpt S 223 Fall 2008 Course Review for Finals Cpt S 223 Fall 2008 1 Course Overview Introduction to advanced data structures Algorithmic asymptotic analysis Programming data structures Program design based on performance i.e.,

More information

Data Structure. IBPS SO (IT- Officer) Exam 2017

Data Structure. IBPS SO (IT- Officer) Exam 2017 Data Structure IBPS SO (IT- Officer) Exam 2017 Data Structure: In computer science, a data structure is a way of storing and organizing data in a computer s memory so that it can be used efficiently. Data

More information

catch(...){ printf( "Assignment::SolveProblem() AAAA!"); }

catch(...){ printf( Assignment::SolveProblem() AAAA!); } catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS 2-3 Tree www.serc.iisc.ernet.in/~viren/courses/2009/ SE286/2-3Trees-mod.ppt Outline q Balanced Search Trees 2-3 Trees

More information

Lecture 3: B-Trees. October Lecture 3: B-Trees

Lecture 3: B-Trees. October Lecture 3: B-Trees October 2017 Remarks Search trees The dynamic set operations search, minimum, maximum, successor, predecessor, insert and del can be performed efficiently (in O(log n) time) if the search tree is balanced.

More information

A set of nodes (or vertices) with a single starting point

A set of nodes (or vertices) with a single starting point Binary Search Trees Understand tree terminology Understand and implement tree traversals Define the binary search tree property Implement binary search trees Implement the TreeSort algorithm 2 A set of

More information

Elementary Data Structures and Hash Tables

Elementary Data Structures and Hash Tables Elementary Data Structures and Hash Tables Antonio Carzaniga Faculty of Informatics University of Lugano November 24, 2006 Outline Common concepts and notation Stacks Queues Linked lists Trees Direct-access

More information

COMP251: Red-black trees

COMP251: Red-black trees COMP251: Red-black trees Jérôme Waldispühl School of Computer Science McGill University Based on (Cormen et al., 2002) Based on slides from D. Plaisted (UNC) The running Rme of inserrons in BST trees with

More information

Trees and Graphs Shabsi Walfish NYU - Fundamental Algorithms Summer 2006

Trees and Graphs Shabsi Walfish NYU - Fundamental Algorithms Summer 2006 Trees and Graphs Basic Definitions Tree: Any connected, acyclic graph G = (V,E) E = V -1 n-ary Tree: Tree s/t all vertices of degree n+1 A root has degree n Binary Search Tree: A binary tree such that

More information

Note that this is a rep invariant! The type system doesn t enforce this but you need it to be true. Should use repok to check in debug version.

Note that this is a rep invariant! The type system doesn t enforce this but you need it to be true. Should use repok to check in debug version. Announcements: Prelim tonight! 7:30-9:00 in Thurston 203/205 o Handed back in section tomorrow o If you have a conflict you can take the exam at 5:45 but can t leave early. Please email me so we have a

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

Data Structures and Algorithms CMPSC 465

Data Structures and Algorithms CMPSC 465 Data Structures and Algorithms CMPSC 465 LECTURE 24 Balanced Search Trees Red-Black Trees Adam Smith 4/18/12 A. Smith; based on slides by C. Leiserson and E. Demaine L1.1 Balanced search trees Balanced

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

9/29/2016. Chapter 4 Trees. Introduction. Terminology. Terminology. Terminology. Terminology

9/29/2016. Chapter 4 Trees. Introduction. Terminology. Terminology. Terminology. Terminology Introduction Chapter 4 Trees for large input, even linear access time may be prohibitive we need data structures that exhibit average running times closer to O(log N) binary search tree 2 Terminology recursive

More information

Analysis of Algorithms

Analysis of Algorithms Analysis of Algorithms Trees-I Prof. Muhammad Saeed Tree Representation.. Analysis Of Algorithms 2 .. Tree Representation Analysis Of Algorithms 3 Nomenclature Nodes (13) Size (13) Degree of a node Depth

More information

Algorithms in Systems Engineering ISE 172. Lecture 16. Dr. Ted Ralphs

Algorithms in Systems Engineering ISE 172. Lecture 16. Dr. Ted Ralphs Algorithms in Systems Engineering ISE 172 Lecture 16 Dr. Ted Ralphs ISE 172 Lecture 16 1 References for Today s Lecture Required reading Sections 6.5-6.7 References CLRS Chapter 22 R. Sedgewick, Algorithms

More information

Data Structures and Algorithms

Data Structures and Algorithms Data Structures and Algorithms CS245-2008S-19 B-Trees David Galles Department of Computer Science University of San Francisco 19-0: Indexing Operations: Add an element Remove an element Find an element,

More information

B Tree. Also, every non leaf node must have at least two successors and all leaf nodes must be at the same level.

B Tree. Also, every non leaf node must have at least two successors and all leaf nodes must be at the same level. B Tree If there is just one item in the node, then the B Tree is organised as a binar search tree: all items in the left sub tree must be less than the item in the node, and all items in the right sub

More information

Introduction to Algorithms March 11, 2009 Massachusetts Institute of Technology Spring 2009 Professors Sivan Toledo and Alan Edelman Quiz 1

Introduction to Algorithms March 11, 2009 Massachusetts Institute of Technology Spring 2009 Professors Sivan Toledo and Alan Edelman Quiz 1 Introduction to Algorithms March 11, 2009 Massachusetts Institute of Technology 6.006 Spring 2009 Professors Sivan Toledo and Alan Edelman Quiz 1 Quiz 1 Do not open this quiz booklet until directed to

More information

SFU CMPT Lecture: Week 9

SFU CMPT Lecture: Week 9 SFU CMPT-307 2008-2 1 Lecture: Week 9 SFU CMPT-307 2008-2 Lecture: Week 9 Ján Maňuch E-mail: jmanuch@sfu.ca Lecture on July 8, 2008, 5.30pm-8.20pm SFU CMPT-307 2008-2 2 Lecture: Week 9 Binary search trees

More information

10/24/ Rotations. 2. // s left subtree s right subtree 3. if // link s parent to elseif == else 11. // put x on s left

10/24/ Rotations. 2. // s left subtree s right subtree 3. if // link s parent to elseif == else 11. // put x on s left 13.2 Rotations MAT-72006 AA+DS, Fall 2013 24-Oct-13 368 LEFT-ROTATE(, ) 1. // set 2. // s left subtree s right subtree 3. if 4. 5. // link s parent to 6. if == 7. 8. elseif == 9. 10. else 11. // put x

More information

(2,4) Trees. 2/22/2006 (2,4) Trees 1

(2,4) Trees. 2/22/2006 (2,4) Trees 1 (2,4) Trees 9 2 5 7 10 14 2/22/2006 (2,4) Trees 1 Outline and Reading Multi-way search tree ( 10.4.1) Definition Search (2,4) tree ( 10.4.2) Definition Search Insertion Deletion Comparison of dictionary

More information

Red-Black trees are usually described as obeying the following rules :

Red-Black trees are usually described as obeying the following rules : Red-Black Trees As we have seen, the ideal Binary Search Tree has height approximately equal to log n, where n is the number of values stored in the tree. Such a BST guarantees that the maximum time for

More information

ECE250: Algorithms and Data Structures Binary Search Trees (Part A)

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

More information

2-3 Tree. Outline B-TREE. catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS

2-3 Tree. Outline B-TREE. catch(...){ printf( Assignment::SolveProblem() AAAA!); } ADD SLIDES ON DISJOINT SETS Outline catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } Balanced Search Trees 2-3 Trees 2-3-4 Trees Slide 4 Why care about advanced implementations? Same entries, different insertion sequence:

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Binary Search Trees CLRS 12.2, 12.3, 13.2, read problem 13-3 University of Manitoba COMP 3170 - Analysis of Algorithms & Data Structures

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

MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct.

MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the elements may locate at far positions

More information

Sorted Arrays. Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min

Sorted Arrays. Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min Binary Search Trees FRIDAY ALGORITHMS Sorted Arrays Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min 6 10 11 17 2 0 6 Running Time O(1) O(lg n) O(1) O(1)

More information

13.4 Deletion in red-black trees

13.4 Deletion in red-black trees The operation of Deletion in a red-black tree is similar to the operation of Insertion on the tree. That is, apply the deletion algorithm for binary search trees to delete a node z; apply node color changes

More information

1 Lower bound on runtime of comparison sorts

1 Lower bound on runtime of comparison sorts 1 Lower bound on runtime of comparison sorts So far we ve looked at several sorting algorithms insertion sort, merge sort, heapsort, and quicksort. Merge sort and heapsort run in worst-case O(n log n)

More information

Data Structure Advanced

Data Structure Advanced Data Structure Advanced 1. Is it possible to find a loop in a Linked list? a. Possilbe at O(n) b. Not possible c. Possible at O(n^2) only d. Depends on the position of loop Solution: a. Possible at O(n)

More information

Data Structures Question Bank Multiple Choice

Data Structures Question Bank Multiple Choice Section 1. Fundamentals: Complexity, Algorthm Analysis 1. An algorithm solves A single problem or function Multiple problems or functions Has a single programming language implementation 2. A solution

More information

Introduction. for large input, even access time may be prohibitive we need data structures that exhibit times closer to O(log N) binary search tree

Introduction. for large input, even access time may be prohibitive we need data structures that exhibit times closer to O(log N) binary search tree Chapter 4 Trees 2 Introduction for large input, even access time may be prohibitive we need data structures that exhibit running times closer to O(log N) binary search tree 3 Terminology recursive definition

More information

TREES. Trees - Introduction

TREES. Trees - Introduction TREES Chapter 6 Trees - Introduction All previous data organizations we've studied are linear each element can have only one predecessor and successor Accessing all elements in a linear sequence is O(n)

More information

(2,4) Trees Goodrich, Tamassia (2,4) Trees 1

(2,4) Trees Goodrich, Tamassia (2,4) Trees 1 (2,4) Trees 9 2 5 7 10 14 2004 Goodrich, Tamassia (2,4) Trees 1 Multi-Way Search Tree A multi-way search tree is an ordered tree such that Each internal node has at least two children and stores d -1 key-element

More information

811312A Data Structures and Algorithms, , Exercise 1 Solutions

811312A Data Structures and Algorithms, , Exercise 1 Solutions 811312A Data Structures and Algorithms, 2018-2019, Exercise 1 Solutions Topics of this exercise are stacks, queues, and s. Cormen 3 rd edition, chapter 10. Task 1.1 Assume that L is a containing 1000 items.

More information

CSCI 136 Data Structures & Advanced Programming. Lecture 25 Fall 2018 Instructor: B 2

CSCI 136 Data Structures & Advanced Programming. Lecture 25 Fall 2018 Instructor: B 2 CSCI 136 Data Structures & Advanced Programming Lecture 25 Fall 2018 Instructor: B 2 Last Time Binary search trees (Ch 14) The locate method Further Implementation 2 Today s Outline Binary search trees

More information

CMSC Introduction to Algorithms Spring 2012 Lecture 7

CMSC Introduction to Algorithms Spring 2012 Lecture 7 CMSC 351 - Introduction to Algorithms Spring 2012 Lecture 7 Instructor: MohammadTaghi Hajiaghayi Scribe: Rajesh Chitnis 1 Introduction In this lecture we give an introduction to Data Structures like arrays,

More information

Design and Analysis of Algorithms Lecture- 9: Binary Search Trees

Design and Analysis of Algorithms Lecture- 9: Binary Search Trees Design and Analysis of Algorithms Lecture- 9: Binary Search Trees Dr. Chung- Wen Albert Tsao 1 Binary Search Trees Data structures that can support dynamic set operations. Search, Minimum, Maximum, Predecessor,

More information

Theory & Algorithms 15/01/04. Red-Black Trees. Nicolas Wack, Sylvain Le Groux

Theory & Algorithms 15/01/04. Red-Black Trees. Nicolas Wack, Sylvain Le Groux Theory & Algorithms Red-Black Trees 15/01/04 Nicolas Wack, Sylvain Le Groux Balanced search trees Balanced search tree: A search-tree data structure for which a height of O(lg n) is guaranteed when implementing

More information

Outline. Definition. 2 Height-Balance. 3 Searches. 4 Rotations. 5 Insertion. 6 Deletions. 7 Reference. 1 Every node is either red or black.

Outline. Definition. 2 Height-Balance. 3 Searches. 4 Rotations. 5 Insertion. 6 Deletions. 7 Reference. 1 Every node is either red or black. Outline 1 Definition Computer Science 331 Red-Black rees Mike Jacobson Department of Computer Science University of Calgary Lectures #20-22 2 Height-Balance 3 Searches 4 Rotations 5 s: Main Case 6 Partial

More information