Splay tree, tree Marko Berezovský Radek Mařík PAL 2012

Size: px
Start display at page:

Download "Splay tree, tree Marko Berezovský Radek Mařík PAL 2012"

Transcription

1 Splay tree, --4 tree Marko erezovský Radek Mařík PL 0 p < Hi!?/ x+y To read x--y [] Weiss M.., Data Structures and lgorithm nalysis in ++, rd Ed., ddison Wesley, 4.5, pp [] Daniel D. Sleator and Robert E. Tarjan, "Self-djusting inary Search Trees", Journal of the M (), 985, pp.5-8. [] en Pfaff: Performance nalysis of STs in System Software, 004, Stanford University, Department of omputer Science, Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4 See also PL webpage for references

2 Splay Tree - Description asic idea VL trees and red-black trees are binary search trees with logarithmic height. This ensures all operations are O(ln(n)) n alternative idea is to make use of an old maxim: Data that has been recently accessed is more likely to be accessed again in the near future. ccessed nodes are splayed ( = moved by one or more rotations) to the root of the tree: Find: Find the node like in a ST and then splay it to the root. Insert: Insert the node like in a ST and then splay it to the root. Delete: Splay the node to the root and then delete it like in a ST. Invented in 985 by Daniel Dominic Sleator and Robert Endre Tarjan. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

3 Splay Tree - Description Properties overview Splay tree - binary search tree. - No additional tree shape description (no additional memory!) is used. - Each node access or insertion splays that node to the root. - Rotations are zig, zig-zig and zig-zag, based on ST single rotation. - ll operations run times are O(n), as the tree height can be (n). - mortized run times of all operations are O(ln(n)). Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

4 Splay Tree - rotation Step-by-step scheme Zig rotation Zig rotation is the same as a rotation (L or R) in VL tree. L R R R rotation L R R L rotation Y L R R L R R fected nodes and edges Note The terms "Zig" and "Zag" are not chiral, that is, they do not describe the direction (left or right) of the actual rotations. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

5 Splay Tree - rotation Step-by-step scheme 4 Zig - zig rotation L R R R L L L R RRrotation LLrotation L R R L R R L L Note that the topmost node might be either the tree root or the left or the right child of its parent. Only the left child case is shown. The other cases are analogous. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

6 Splay Tree - rotation Step-by-step scheme 5 Zig - zig rotation L R R R R rotation L R R R L R rotation L R R R R R R oth simple rotations are performed at the top of the current subtree, the splayed node (with key ) is not involved in the first rotation. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

7 Splay Tree - rotation Step-by-step scheme Zig - zag rotation L L R R L L R R LRrotation RLrotation L L R R L L R R Note that the topmost node might be either the tree root or the left or the right child of its parent. Only the left child case is shown. The other cases are analogous. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

8 Splay Tree - rotation Step-by-step scheme 7 Zig - zag rotation L rotation L L R R L L R R R rotation L L R R L L R R Note: Zig-Zag rotation is identical to the double (LR or RL) rotation in VL tree. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

9 Splay Tree - Insert Example 8 Insert Insert Splay Insert Splay Insert 4 Splay 4 4 Insert 5 Splay etc... Insert Splay Note the extremely inefficient shape of the resulting tree Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

10 Splay Tree - Find Example 9 Find Key is the deepest key in the tree Find operation is of (n) complexity in this case :-( Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

11 Splay Tree - Insert Example Scheme - Result of the most unfavourable Find operation Note that the tree heigth is roughly halved. H (H + ) / Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

12 Splay Tree - Find Example Find 4 5 Key is the deepest key in the tree The Find operation would be again of ~n complexity. :-( Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

13 Splay Tree - Find Example Scheme - Progress of the two most unfavourable Find operations. Note the relatively favourable shape of the resulting tree. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

14 Splay Tree - Delete Simple scheme Delete(k). Find(k); // This splays k to the root. Remove the root; // Splits the tree into L and R subtree of the root.. y = Find max in L subtree; // This splays y to the root of L subtree 4. y.right = R subtree;.find k k. Split = remove root k L R y y = maximum key in L = closest smaller value to k. FindMax(L) y 4. y.right = R y L - {y} R L - {y} R Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

15 Splay Tree - Performance Summary 4 It is difficult to demonstrate the amortized logarithmic behaviour of splay trees using only small trees with few nodes. The original M article [] proves the balance theorem: The run time of performing a sequence of m operations on a splay tree with n nodes is O( m( + ln(n)) + n ln(n) ). Therefore, the run time for a splay tree is comparable to any balanced tree assuming at least n operations. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

16 Splay Tree - Performance Summary 5 From the time of introducing splay trees (985) up till today the following conjecture (among others) remains unproven. Dynamic optimality conjecture [] onsider any sequence of successful accesses on an n-node search tree. Let be any algorithm that carries out each access by traversing the path from the root to the node containing the accessed item, at a cost of one plus the depth of the node containing the item, and that between accesses performs an arbitrary number of rotations anywhere in the tree, at a cost of one per rotation. Then the total time to perform all the accesses by splaying is no more than O(n) plus a constant times the time required by algorithm. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

17 Splay Tree - Performance omparisons dvantages: The amortized run times are similar to that of VL trees and redblack trees The implementation is easier No additional information (height/colour) is required Disadvantages: The tree will change with read-only operations Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

18 --4 tree Shape search tree is structurally a -tree of min degree and max degree 4. node is a -node or a -node or a 4-node. If a node is not a leaf it has the corresponding number (,, 4) of children. ll leaves are at the same distance from the root, the tree is perfectly balanced. -node -node 4-node Example Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

19 --4 tree Operations 9 Find: s in -tree Insert: s in -tree: Find the place for the inserted key x in a leaf and store it there. If necessary, split the leaf and store the median in the parent. Splitting strategy dditional insert rule (like single phase strategy in -trees): In our way down the tree, whenever we reach a 4-node (including a leaf), we split it into two -nodes, and move the middle element up to the parent node. This strategy prevents the following from happening: fter inserting a key it might be necessary to split all the nodes going from inserted key back to the root. Such outcome is considered to be time consuming. Splitting 4-nodes on the way down results in sparse occurence of 4-nodes in the tree, thus the nodes never have to be split recursively bottom-up. Delete: s in -tree Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

20 --4 tree Splitting strategy 0 Split node is the root. Only the root splitting increases the tree height a b c d a b c d Split node is the leftmost or the rightmost child of either a -node or a -node. (Only the leftmost case is shown, the righmost case is analogous) X a b c d a b c d X X Y X Y Split node is the middle child of a -node. a b c d a b c d The node being split cannot be a child of a 4-node, due to the splitting strategy. Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

21 --4 Tree Insert example I Insert keys into initially empty --4 tree: S E R H I N G K L M Insert S Insert E Insert S E S E S Insert R E Insert E R S R S Insert H E Insert I E R H R S H I S Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

22 N Insert I Insert N Insert G Insert K E S H R I E S H R I N E S G I H N R E S G I H N R Note the seemingly unnecessary split of E,I,R 4-node during insertion of K. --4 Tree Insert example II Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4 Insert L Insert M K E G I H S L R K N E G I H S M L K R

23 --4 Tree Size example 4 Results of an experiment with N uniformly distributed random keys from range {,..., 0 9 } inserted into initially empty --4 tree: N Tree depth -nodes -nodes 4-nodes Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

24 --4 tree Relation to R- tree 5 Relation of a --4 tree to a red-black tree X X a b a b X Y a X Y a b c b c X Y Z a b c d a X b Y c Z d Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

25 Trees comparison Example en Pfaff: Performance nalysis of STs in System Software, 004, [] onclusions:...unbalanced STs are best when randomly ordered input can be relied upon; if random ordering is the norm but occasional runs of sorted order are expected, then red-black trees should be chosen. On the other hand, if insertions often occur in a sorted order, VL trees excel when later accesses tend to be random, and splay trees perform best when later accesses are sequential or clustered. Some consequences: Managing virtual memory areas in OS kernel:... Many kernels use STs for keeping track of virtual memory areas (VMs) : Linux before.4.0 used VL trees, OpenSD and later versions of Linux use red-black trees, FreeSD uses splay trees, and so does Windows NT for its VM equivalents... Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

26 Trees comparison Example (excerpt) 7 tree / time in msec / order Memory management supporting web browser ST VL R splay rtificial uniformly random data ST VL R splay Secondary peer cache tree ST VL R splay ompilation identifiers cross-references ST VL R splay Pokročilá lgoritmizace, 4MPL, ZS 0/0, FEL ČVUT, /4

Splay tree, tree Marko Berezovský Radek Mařík PAL 2012

Splay tree, tree Marko Berezovský Radek Mařík PAL 2012 Splay tree, --4 tree Marko erezovský Radek Mařík PL 0 p < Hi!?/ x+y x--y To read [] Weiss M.., Data Structures and lgorithm nalysis in ++, rd Ed., ddison Wesley, 4.5, pp.49-58. [] Daniel D. Sleator and

More information

Search trees, tree, B+tree Marko Berezovský Radek Mařík PAL 2012

Search trees, tree, B+tree Marko Berezovský Radek Mařík PAL 2012 Search trees, 2-3-4 tree, B+tree Marko Berezovský Radek Mařík PL 2012 p 2

More information

OPPA European Social Fund Prague & EU: We invest in your future.

OPPA European Social Fund Prague & EU: We invest in your future. OPPA European Social Fund Prague & EU: We invest in your future. ECE 250 Algorithms and Data Structures Splay Trees Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering

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

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

Splay Trees. (Splay Trees) Data Structures and Programming Spring / 27

Splay Trees. (Splay Trees) Data Structures and Programming Spring / 27 Splay Trees (Splay Trees) Data Structures and Programming Spring 2017 1 / 27 Basic Idea Invented by Sleator and Tarjan (1985) Blind rebalancing no height info kept! Worst-case time per operation is O(n)

More information

Red-Black, Splay and Huffman Trees

Red-Black, Splay and Huffman Trees Red-Black, Splay and Huffman Trees Kuan-Yu Chen ( 陳冠宇 ) 2018/10/22 @ TR-212, NTUST AVL Trees Review Self-balancing binary search tree Balance Factor Every node has a balance factor of 1, 0, or 1 2 Red-Black

More information

Search Trees - 2. Venkatanatha Sarma Y. Lecture delivered by: Assistant Professor MSRSAS-Bangalore. M.S Ramaiah School of Advanced Studies - Bangalore

Search Trees - 2. Venkatanatha Sarma Y. Lecture delivered by: Assistant Professor MSRSAS-Bangalore. M.S Ramaiah School of Advanced Studies - Bangalore Search Trees - 2 Lecture delivered by: Venkatanatha Sarma Y Assistant Professor MSRSAS-Bangalore 11 Objectives To introduce, discuss and analyse the different ways to realise balanced Binary Search Trees

More information

Transform & Conquer. Presorting

Transform & Conquer. Presorting Transform & Conquer Definition Transform & Conquer is a general algorithm design technique which works in two stages. STAGE : (Transformation stage): The problem s instance is modified, more amenable to

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

CIS265/ Trees Red-Black Trees. Some of the following material is from:

CIS265/ Trees Red-Black Trees. Some of the following material is from: CIS265/506 2-3-4 Trees Red-Black Trees Some of the following material is from: Data Structures for Java William H. Ford William R. Topp ISBN 0-13-047724-9 Chapter 27 Balanced Search Trees Bret Ford 2005,

More information

ICS 691: Advanced Data Structures Spring Lecture 3

ICS 691: Advanced Data Structures Spring Lecture 3 ICS 691: Advanced Data Structures Spring 2016 Prof. Nodari Sitchinava Lecture 3 Scribe: Ben Karsin 1 Overview In the last lecture we started looking at self-adjusting data structures, specifically, move-to-front

More information

1 Figure 1: Zig operation on x Figure 2: Zig-zig operation on x

1 Figure 1: Zig operation on x Figure 2: Zig-zig operation on x www.alepho.com 1 1 Splay tree Motivation for this data structure is to have binary tree which performs rotations when nodes is accessed. Operations of interest are finding, inserting and deleting key,

More information

Balanced Binary Search Trees. Victor Gao

Balanced Binary Search Trees. Victor Gao Balanced Binary Search Trees Victor Gao OUTLINE Binary Heap Revisited BST Revisited Balanced Binary Search Trees Rotation Treap Splay Tree BINARY HEAP: REVIEW A binary heap is a complete binary tree such

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

CSE 326: Data Structures Splay Trees. James Fogarty Autumn 2007 Lecture 10

CSE 326: Data Structures Splay Trees. James Fogarty Autumn 2007 Lecture 10 CSE 32: Data Structures Splay Trees James Fogarty Autumn 2007 Lecture 10 AVL Trees Revisited Balance condition: Left and right subtrees of every node have heights differing by at most 1 Strong enough :

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

Chapter 22 Splay Trees

Chapter 22 Splay Trees Chapter 22 Splay Trees Introduction Splay trees support all the operations of binary trees. But they do not guarantee Ο(log N) worst-case performance. Instead, its bounds are amortized, meaning that although

More information

Binary Search Trees. Analysis of Algorithms

Binary Search Trees. Analysis of Algorithms Binary Search Trees Analysis of Algorithms Binary Search Trees A BST is a binary tree in symmetric order 31 Each node has a key and every node s key is: 19 23 25 35 38 40 larger than all keys in its left

More information

Trees. Q: Why study trees? A: Many advance ADTs are implemented using tree-based data structures.

Trees. Q: Why study trees? A: Many advance ADTs are implemented using tree-based data structures. Trees Q: Why study trees? : Many advance DTs are implemented using tree-based data structures. Recursive Definition of (Rooted) Tree: Let T be a set with n 0 elements. (i) If n = 0, T is an empty tree,

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

CSCI-401 Examlet #5. Name: Class: Date: True/False Indicate whether the sentence or statement is true or false.

CSCI-401 Examlet #5. Name: Class: Date: True/False Indicate whether the sentence or statement is true or false. Name: Class: Date: CSCI-401 Examlet #5 True/False Indicate whether the sentence or statement is true or false. 1. The root node of the standard binary tree can be drawn anywhere in the tree diagram. 2.

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

Multi-way Search Trees. (Multi-way Search Trees) Data Structures and Programming Spring / 25

Multi-way Search Trees. (Multi-way Search Trees) Data Structures and Programming Spring / 25 Multi-way Search Trees (Multi-way Search Trees) Data Structures and Programming Spring 2017 1 / 25 Multi-way Search Trees Each internal node of a multi-way search tree T: has at least two children contains

More information

8.1. Optimal Binary Search Trees:

8.1. Optimal Binary Search Trees: DATA STRUCTERS WITH C 10CS35 UNIT 8 : EFFICIENT BINARY SEARCH TREES 8.1. Optimal Binary Search Trees: An optimal binary search tree is a binary search tree for which the nodes are arranged on levels such

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

CS 61B Data Structures and Programming Methodology. Aug 11, 2008 David Sun

CS 61B Data Structures and Programming Methodology. Aug 11, 2008 David Sun CS 61B Data Structures and Programming Methodology Aug 11, 2008 David Sun Announcements Final is to be held this Thursday from 11:00 2:00 pm in 306 and 310 Soda. Open book format. If you have conflicts

More information

Search Trees. Chapter 11

Search Trees. Chapter 11 Search Trees Chapter 6 4 8 9 Outline Binar Search Trees AVL Trees Spla Trees Outline Binar Search Trees AVL Trees Spla Trees Binar Search Trees A binar search tree is a proper binar tree storing ke-value

More information

CMPE 160: Introduction to Object Oriented Programming

CMPE 160: Introduction to Object Oriented Programming CMPE 6: Introduction to Object Oriented Programming General Tree Concepts Binary Trees Trees Definitions Representation Binary trees Traversals Expression trees These are the slides of the textbook by

More information

1 Binary Search Trees (BSTs)

1 Binary Search Trees (BSTs) Lecture 19-20 Binary Search Trees Parallel and Sequential Data Structures and Algorithms, 15-210 (Fall 2013) Lectured by Danny Sleator 31 Oct (Halloween!) and Nov 5 2013 Today: - Binary Search Trees (BST)

More information

CSC Design and Analysis of Algorithms

CSC Design and Analysis of Algorithms CSC : Lecture 7 CSC - Design and Analysis of Algorithms Lecture 7 Transform and Conquer I Algorithm Design Technique CSC : Lecture 7 Transform and Conquer This group of techniques solves a problem by a

More information

DDS Dynamic Search Trees

DDS Dynamic Search Trees DDS Dynamic Search Trees 1 Data structures l A data structure models some abstract object. It implements a number of operations on this object, which usually can be classified into l creation and deletion

More information

Trees! Ellen Walker! CPSC 201 Data Structures! Hiram College!

Trees! Ellen Walker! CPSC 201 Data Structures! Hiram College! Trees! Ellen Walker! CPSC 201 Data Structures! Hiram College! ADTʼs Weʼve Studied! Position-oriented ADT! List! Stack! Queue! Value-oriented ADT! Sorted list! All of these are linear! One previous item;

More information

CSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer

CSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer // CSC - Design and Analysis of Algorithms Lecture 7 Transform and Conquer I Algorithm Design Technique Transform and Conquer This group of techniques solves a problem by a transformation to a simpler/more

More information

Search trees, binary trie, patricia trie Marko Berezovský Radek Mařík PAL 2012

Search trees, binary trie, patricia trie Marko Berezovský Radek Mařík PAL 2012 Search trees, binary trie, patricia trie Marko Berezovský Radek Mařík PAL 212 p 2

More information

Ch04 Balanced Search Trees

Ch04 Balanced Search Trees Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 05 Ch0 Balanced Search Trees v 3 8 z Why care about advanced implementations? Same entries,

More information

An AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time

An AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time B + -TREES MOTIVATION An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations finish within O(log N) time The theoretical conclusion

More information

Randomized Ternary Search Tries

Randomized Ternary Search Tries Randomized Ternary Search Tries icolai Diethelm bstract simple method for maintaining balance in ternary search tries is presented. The new kind of selfbalancing ternary search trie, called an r-trie,

More information

Binary Trees

Binary Trees Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what

More information

Lecture 7. Transform-and-Conquer

Lecture 7. Transform-and-Conquer Lecture 7 Transform-and-Conquer 6-1 Transform and Conquer This group of techniques solves a problem by a transformation to a simpler/more convenient instance of the same problem (instance simplification)

More information

Linked Structures Songs, Games, Movies Part III. Fall 2013 Carola Wenk

Linked Structures Songs, Games, Movies Part III. Fall 2013 Carola Wenk Linked Structures Songs, Games, Movies Part III Fall 2013 Carola Wenk Biological Structures Nature has evolved vascular and nervous systems in a hierarchical manner so that nutrients and signals can quickly

More information

What is a Multi-way tree?

What is a Multi-way tree? B-Tree Motivation for studying Multi-way and B-trees A disk access is very expensive compared to a typical computer instruction (mechanical limitations) -One disk access is worth about 200,000 instructions.

More information

OPPA European Social Fund Prague & EU: We invest in your future.

OPPA European Social Fund Prague & EU: We invest in your future. OPPA European Social Fund Prague & EU: We invest in your future. Search trees, binary trie, patricia trie Marko Berezovský Radek Mařík PAL 212 p 2

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

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

l So unlike the search trees, there are neither arbitrary find operations nor arbitrary delete operations possible.

l So unlike the search trees, there are neither arbitrary find operations nor arbitrary delete operations possible. DDS-Heaps 1 Heaps - basics l Heaps an abstract structure where each object has a key value (the priority), and the operations are: insert an object, find the object of minimum key (find min), and delete

More information

CS Transform-and-Conquer

CS Transform-and-Conquer CS483-11 Transform-and-Conquer Instructor: Fei Li Room 443 ST II Office hours: Tue. & Thur. 1:30pm - 2:30pm or by appointments lifei@cs.gmu.edu with subject: CS483 http://www.cs.gmu.edu/ lifei/teaching/cs483_fall07/

More information

Lecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs

Lecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Lecture 5 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Reading: Randomized Search Trees by Aragon & Seidel, Algorithmica 1996, http://sims.berkeley.edu/~aragon/pubs/rst96.pdf;

More information

Where we are. CSE373: Data Structures & Algorithms Lecture 4: Dictionaries; Binary Search Trees. The Dictionary (a.k.a. Map) ADT

Where we are. CSE373: Data Structures & Algorithms Lecture 4: Dictionaries; Binary Search Trees. The Dictionary (a.k.a. Map) ADT Where we are Studying the absolutely essential DTs of computer science and classic data structures for implementing them SE: Data Structures & lgorithms Lecture : Dictionaries; inary Search Trees Dan rossman

More information

Dynamic Optimality and Multi-Splay Trees 1

Dynamic Optimality and Multi-Splay Trees 1 Dynamic Optimality and Multi-Splay Trees 1 Daniel Dominic Sleator and Chengwen Chris Wang November 5, 2004 CMU-CS-04-171 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Abstract

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

Recall from Last Time: AVL Trees

Recall from Last Time: AVL Trees CSE 326 Lecture 8: Getting to now AVL Trees Today s Topics: Balanced Search Trees AVL Trees and Rotations Splay trees Covered in Chapter 4 of the text Recall from Last Time: AVL Trees AVL trees are height-balanced

More information

AVL Trees. Version of September 6, AVL Trees Version of September 6, / 22

AVL Trees. Version of September 6, AVL Trees Version of September 6, / 22 VL Trees Version of September 6, 6 VL Trees Version of September 6, 6 / inary Search Trees x 8 4 4 < x > x 7 9 3 inary-search-tree property For every node x ll eys in its left subtree are smaller than

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

CSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials)

CSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials) CSE100 Advanced Data Structures Lecture 8 (Based on Paul Kube course materials) CSE 100 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs

More information

Multi-way Search Trees

Multi-way Search Trees Multi-way Search Trees Kuan-Yu Chen ( 陳冠宇 ) 2018/10/24 @ TR-212, NTUST Review Red-Black Trees Splay Trees Huffman Trees 2 Multi-way Search Trees. Every node in a binary search tree contains one value and

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Lecture 9 - Jan. 22, 2018 CLRS 12.2, 12.3, 13.2, read problem 13-3 University of Manitoba COMP 3170 - Analysis of Algorithms & Data Structures

More information

Data Structures Week #6. Special Trees

Data Structures Week #6. Special Trees Data Structures Week #6 Special Trees Outline Adelson-Velskii-Landis (AVL) Trees Splay Trees B-Trees 21.Aralık.2010 Borahan Tümer, Ph.D. 2 AVL Trees 21.Aralık.2010 Borahan Tümer, Ph.D. 3 Motivation for

More information

l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are:

l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are: DDS-Heaps 1 Heaps - basics l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are: l insert an object, find the object of minimum key (find

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

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

CSIT5300: Advanced Database Systems

CSIT5300: Advanced Database Systems CSIT5300: Advanced Database Systems L08: B + -trees and Dynamic Hashing Dr. Kenneth LEUNG Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong SAR,

More information

Uses for Trees About Trees Binary Trees. Trees. Seth Long. January 31, 2010

Uses for Trees About Trees Binary Trees. Trees. Seth Long. January 31, 2010 Uses for About Binary January 31, 2010 Uses for About Binary Uses for Uses for About Basic Idea Implementing Binary Example: Expression Binary Search Uses for Uses for About Binary Uses for Storage Binary

More information

Multiway Search Trees. Multiway-Search Trees (cont d)

Multiway Search Trees. Multiway-Search Trees (cont d) Multiway Search Trees Each internal node v of a multi-way search tree T has at least two children contains d-1 items, where d is the number of children of v an item is of the form (k i,x i ) for 1 i d-1,

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

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

A Splay Tree Implementation

A Splay Tree Implementation A Splay Tree Implementation by: Thomas Grindinger & Benjamin Hoipkemier Introduction Splay trees are a type of binary search tree that was developed by Robert Tarjan, and Daniel Sleator. We have based

More information

Section 1: True / False (1 point each, 15 pts total)

Section 1: True / False (1 point each, 15 pts total) Section : True / False ( point each, pts total) Circle the word TRUE or the word FALSE. If neither is circled, both are circled, or it impossible to tell which is circled, your answer will be considered

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Lecture 9 - Jan. 22, 2018 CLRS 12.2, 12.3, 13.2, read problem 13-3 University of Manitoba 1 / 12 Binary Search Trees (review) Structure

More information

CHAPTER 10 AVL TREES. 3 8 z 4

CHAPTER 10 AVL TREES. 3 8 z 4 CHAPTER 10 AVL TREES v 6 3 8 z 4 ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 2004) AND SLIDES FROM NANCY

More information

CS24 Week 8 Lecture 1

CS24 Week 8 Lecture 1 CS24 Week 8 Lecture 1 Kyle Dewey Overview Tree terminology Tree traversals Implementation (if time) Terminology Node The most basic component of a tree - the squares Edge The connections between nodes

More information

3 Competitive Dynamic BSTs (January 31 and February 2)

3 Competitive Dynamic BSTs (January 31 and February 2) 3 Competitive Dynamic BSTs (January 31 and February ) In their original paper on splay trees [3], Danny Sleator and Bob Tarjan conjectured that the cost of sequence of searches in a splay tree is within

More information

Self Adjusting Data Structures

Self Adjusting Data Structures Self Adjusting Data Structures Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Self Adjusting Data Structures 2014/2015 1 / 31 What are self adjusting data structures? Data structures that can

More information

Module 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree.

Module 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree. The Lecture Contains: Index structure Binary search tree (BST) B-tree B+-tree Order file:///c /Documents%20and%20Settings/iitkrana1/My%20Documents/Google%20Talk%20Received%20Files/ist_data/lecture13/13_1.htm[6/14/2012

More information

ITEC2620 Introduction to Data Structures

ITEC2620 Introduction to Data Structures T2620 ntroduction to ata Structures Lecture 4a inary Trees Review of Linked Lists Linked-Lists dynamic length arbitrary memory locations access by following links an only traverse link in forward direction

More information

Search Trees - 1 Venkatanatha Sarma Y

Search Trees - 1 Venkatanatha Sarma Y Search Trees - 1 Lecture delivered by: Venkatanatha Sarma Y Assistant Professor MSRSAS-Bangalore 11 Objectives To introduce, discuss and analyse the different ways to realise balanced Binary Search Trees

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

Data Structures Week #6. Special Trees

Data Structures Week #6. Special Trees Data Structures Week #6 Special Trees Outline Adelson-Velskii-Landis (AVL) Trees Splay Trees B-Trees October 5, 2015 Borahan Tümer, Ph.D. 2 AVL Trees October 5, 2015 Borahan Tümer, Ph.D. 3 Motivation for

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

Chapter 12 Advanced Data Structures

Chapter 12 Advanced Data Structures Chapter 12 Advanced Data Structures 2 Red-Black Trees add the attribute of (red or black) to links/nodes red-black trees used in C++ Standard Template Library (STL) Java to implement maps (or, as in Python)

More information

arxiv: v1 [cs.ds] 13 Jul 2009

arxiv: v1 [cs.ds] 13 Jul 2009 Layered Working-Set Trees Prosenjit Bose Karim Douïeb Vida Dujmović John Howat arxiv:0907.2071v1 [cs.ds] 13 Jul 2009 Abstract The working-set bound [Sleator and Tarjan, J. ACM, 1985] roughly states that

More information

CS 171: Introduction to Computer Science II. Binary Search Trees

CS 171: Introduction to Computer Science II. Binary Search Trees CS 171: Introduction to Computer Science II Binary Search Trees Binary Search Trees Symbol table applications BST definitions and terminologies Search and insert Traversal Ordered operations Delete Symbol

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

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

Advanced Algorithms. Class Notes for Thursday, September 18, 2014 Bernard Moret

Advanced Algorithms. Class Notes for Thursday, September 18, 2014 Bernard Moret Advanced Algorithms Class Notes for Thursday, September 18, 2014 Bernard Moret 1 Amortized Analysis (cont d) 1.1 Side note: regarding meldable heaps When we saw how to meld two leftist trees, we did not

More information

Trees. Eric McCreath

Trees. Eric McCreath Trees Eric McCreath 2 Overview In this lecture we will explore: general trees, binary trees, binary search trees, and AVL and B-Trees. 3 Trees Trees are recursive data structures. They are useful for:

More information

Balanced Binary Search Trees

Balanced Binary Search Trees Balanced Binary Search Trees Pedro Ribeiro DCC/FCUP 2017/2018 Pedro Ribeiro (DCC/FCUP) Balanced Binary Search Trees 2017/2018 1 / 48 Motivation Let S be a set of comparable objects/items: Let a and b be

More information

1 Splay trees. 2 Implementation of splay. CS134b Homework #1 January 8, 2001 Due January 15, 2001

1 Splay trees. 2 Implementation of splay. CS134b Homework #1 January 8, 2001 Due January 15, 2001 CSb Homework # January, 00 Due January, 00 Splay trees One of the most important data structures used in compilers are sets and tables of arbitrary elements. For example, when we do type checking, we will

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

Advanced Tree Data Structures

Advanced Tree Data Structures Advanced Tree Data Structures Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park Binary trees Traversal order Balance Rotation Multi-way trees Search Insert Overview

More information

CSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer

CSC Design and Analysis of Algorithms. Lecture 7. Transform and Conquer I Algorithm Design Technique. Transform and Conquer CSC 83- Design and Analysis of Algorithms Lecture 7 Transform and Conuer I Algorithm Design Techniue Transform and Conuer This group of techniues solves a problem by a transformation to a simpler/more

More information

Data Structure. Chapter 10 Search Structures (Part II)

Data Structure. Chapter 10 Search Structures (Part II) Data Structure Chapter 1 Search Structures (Part II) Instructor: ngela Chih-Wei Tang Department of Communication Engineering National Central University Jhongli, Taiwan 29 Spring Outline VL trees Introduction

More information

Binary Trees, Binary Search Trees

Binary Trees, Binary Search Trees Binary Trees, Binary Search Trees Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete)

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

B-Trees and External Memory

B-Trees and External Memory Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 and External Memory 1 1 (2, 4) Trees: Generalization of BSTs Each internal node

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Balanced Search Trees Date: 9/20/18

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Balanced Search Trees Date: 9/20/18 601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Balanced Search Trees Date: 9/20/18 6.1 Introduction For next few lectures we will be looking at several important data structures.

More information

Algorithms for Memory Hierarchies Lecture 2

Algorithms for Memory Hierarchies Lecture 2 Algorithms for emory Hierarchies Lecture Lecturer: odari Sitchianva Scribes: Robin Rehrmann, ichael Kirsten Last Time External memory (E) model Scan(): O( ) I/Os Stacks / queues: O( 1 ) I/Os / elt ergesort:

More information

Computer Science 210 Data Structures Siena College Fall Topic Notes: Binary Search Trees

Computer Science 210 Data Structures Siena College Fall Topic Notes: Binary Search Trees Computer Science 10 Data Structures Siena College Fall 018 Topic Notes: Binary Search Trees Possibly the most common usage of a binary tree is to store data for quick retrieval. Definition: A binary tree

More information

Trees. Reading: Weiss, Chapter 4. Cpt S 223, Fall 2007 Copyright: Washington State University

Trees. Reading: Weiss, Chapter 4. Cpt S 223, Fall 2007 Copyright: Washington State University Trees Reading: Weiss, Chapter 4 1 Generic Rooted Trees 2 Terms Node, Edge Internal node Root Leaf Child Sibling Descendant Ancestor 3 Tree Representations n-ary trees Each internal node can have at most

More information

Efficient pebbling for list traversal synopses

Efficient pebbling for list traversal synopses Efficient pebbling for list traversal synopses Yossi Matias Ely Porat Tel Aviv University Bar-Ilan University & Tel Aviv University Abstract 1 Introduction 1.1 Applications Consider a program P running

More information