Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 213 – Large Scale Programming. Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important.

Similar presentations


Presentation on theme: "CSC 213 – Large Scale Programming. Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important."— Presentation transcript:

1 CSC 213 – Large Scale Programming

2 Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important data near root  Which key best at root of Tree of NHL teams?

3 Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important data near root  Which key best at root of Tree of NHL teams?  BST : Key for Entry added first

4 Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important data near root  Which key best at root of Tree of NHL teams?  BST : Key for Entry added first  AVLTree : Random Entry near midpoint

5 Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important data near root  Which key best at root of Tree of NHL teams?  BST : Key for Entry added first  AVLTree : Random Entry near midpoint  SplayTree : Most recently used key

6 Building a SplayTree builds upon BST  Another approach which builds upon BST  Not an AVLTree  Not an AVLTree, however, but a new BST subclass

7 Concept Behind SplayTree  Splay trees do NOT maintain balance  Recently used nodes clustered near top of BST  Most recently accessed nodes take O(1) time  Other nodes may need O ( n ) time to find, however

8 Concept Behind SplayTree  Splay trees do NOT maintain balance  Recently used nodes clustered near top of BST  Most recently accessed nodes take O(1) time  Other nodes may need O ( n ) time to find, however

9 SplayTree Complexity  Without balancing, keeps BST 's O ( n ) complexity  Worst-case performance is like all unbalanced trees  But splaying gives expected O (log n ) complexity  Averages complexity of O(1) & O(n) operations  If work concentrated on small subset, time is faster  Worst-case hard to create without knowing tree

10 Be Kind: Splay Your Tree  Assumes nodes reused soon after initial use  At end of each method, moves node up to root  Using node now O(1) and will only slowly drop in tree  Splay  Splay tree with each find, insert & remove  AVL-like restructuring to reorganize nodes in tree  But continues rotations until node becomes root

11 How To Splay

12  Uses trinode restructuring but not like AVL does nodeparentgrandparent  Not balancing: selects node, parent, & grandparent  Always move node to root of subtree when splaying  When splaying, new types restructures also exist  Node & parent always used in these rotations  Rotations will also use grandparent, if it exists  Moving node to tree root is goal of splaying  May get a balanced tree, but WANT IT ALL, ASAP

13 When To Use Splay Tree  What applications are good for a splay tree?  Where would splay trees be a BAD IDEA ?

14 Splay Node Rotations  Uses different nodes  Uses different nodes than previous rotations  AVLTree moves node down to balance tree's tao  Can now be greedy: make it SplayTree 's root

15 Splay Node Rotations  Uses different nodes  Uses different nodes than previous rotations  AVLTree moves node down to balance tree's tao  Can now be greedy: make it SplayTree 's root AVLTree

16 Splay Node Rotations  Uses different nodes  Uses different nodes than previous rotations  AVLTree moves node down to balance tree's tao  Can now be greedy: make it SplayTree 's root AVLTreeSplayTree

17 Zig-Zag Zig-Zag When Splaying a Tree  When node median of parent & grandparent  Just like in AVL tree, perform trinode restructuring  Use 7(+1) variables to set node's parent & children parent node T2T2 T3T3 T4T4 grandparent T1T1 parent node T2T2 T3T3 T4T4 grandparent T1T1

18 Zig-Zig Zig-Zig When Splaying a Tree parent node grandparent T1T1 T4T4 T2T2 T3T3

19 Zig-Zig Zig-Zig When Splaying a Tree parent node grandparent T1T1 T4T4 T2T2 T3T3 parent node T2T2 T3T3 T4T4 grandparent T1T1

20 Right Splaying Right Child Of Root root node T3T3 T1T1 T2T2  Simplest process is when parent is the root  Single rotation completes splaying process  Splaying does not stop until you reach the top  Rotation not always used, may only need restructures

21 Right Splaying Right Child Of Root root node T3T3 T1T1 T2T2  Simplest process is when parent is the root  Single rotation completes splaying process  Splaying does not stop until you reach the top  Rotation not always used, may only need restructures

22 Right Splaying Right Child Of Root root node root node T2T2 T3T3 T1T1 T3T3 T1T1 T2T2  Simplest process is when parent is the root  Single rotation completes splaying process  Splaying does not stop until you reach the top  Rotation not always used, may only need restructures

23 Left Splaying Left Child Of Root  Simplest process is when parent is the root  Single rotation completes splaying process  Splaying does not stop until you reach the top  Rotation not always used, may only need restructures T2T2 T3T3 T1T1 root node T3T3 T1T1 T2T2 root

24 Which Node Gets Splayed? MethodNode to splay find If found, splay node containing match If not found, splay last node in treeSearch add Splay node for new Entry remove If found, splay parent of external node removed If not found, splay last node in treeSearch

25 Which Node Gets Splayed?  Only internal nodes  Only internal nodes can be splayed  When operation end with leaf, splay its parent MethodNode to splay find If found, splay node containing match If not found, splay last node in treeSearch add Splay node for new Entry remove If found, splay parent of external node removed If not found, splay last node in treeSearch

26 For Next Lecture


Download ppt "CSC 213 – Large Scale Programming. Implementing Map with a Tree  Accessing root much faster than going to leaves  In real-world, should place important."

Similar presentations


Ads by Google