1 / 35

Trees-I

Analysis of Algorithms. Trees-I. Prof. Muhammad Saeed. Tree. Tree Representation …. Tree. ….. Tree Representation. Tree. Nomenclature. Nodes (13) Size (13) Degree of a node Depth of a tree (3) Height of a tree (3) Level of a node Leaf (terminal) Nonterminal Parent Children

arawn
Télécharger la présentation

Trees-I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analysis of Algorithms Trees-I Prof. Muhammad Saeed

  2. Tree Tree Representation ….. Analysis Of Algorithms

  3. Tree ….. Tree Representation Analysis Of Algorithms

  4. Tree Nomenclature Nodes (13) Size (13) Degree of a node Depthof a tree (3) Height of a tree (3) Level of a node Leaf (terminal) Nonterminal Parent Children Sibling Ancestor Level 1 2 3 4 Degree Level 3 1 2 2 1 2 3 2 1 3 3 0 3 0 1 0 3 0 3 3 0 0 4 4 0 4 Analysis Of Algorithms

  5. Tree Types • Binary Tree • Binary Search Tree • B-Tree • AVL Tree • Red-Black Tree • Splay Tree • Binomial Tree Analysis Of Algorithms

  6. Tree A forest is a set of n >= 0 disjoint trees A Forest G E A B E I H F G F D C C B H D I Analysis Of Algorithms

  7. Tree Complete binary tree Full binary tree of depth 4 1 1 2 2 3 3 7 4 6 5 5 7 6 4 13 14 12 15 10 9 11 8 8 9 Analysis Of Algorithms

  8. Tree Binary Tree Traversal • A binary tree can be traversed using four different algorithms • Pre-order:Root-Left-Right, It employs Depth First Search. • 2.Inorder: Left-Root-Right. • 3. Post-order: Left-Right-Root • 4. Level-by-level. Analysis Of Algorithms

  9. + * E * D C / B A Tree Arithmetic Expression Using Binary Tree inorder traversal A / B * C * D + E infix expression preorder traversal + * * / A B C D E prefix expression postorder traversal A B / C * D * E + postfix expression level order traversal + * E * D / C A B Analysis Of Algorithms

  10. [1] [1] 9 [1] 30 14 [2] [2] [3] [2] 3 6 [3] 7 25 12 [6] [5] [4] 5 10 8 6 Tree Heaps Property: The root of max heap (min heap) contains the largest (smallest). [4] Analysis Of Algorithms

  11. Tree Priority queue representations Analysis Of Algorithms

  12. 26 200 28 190 213 18 12 24 27 Tree Binary Search Tree ….. 56 • Stored keys must satisfy the binary search tree property. • if y is in left subtree of x, then key[y]  key[x]. • If y is in right subtree of x, then key[y]  key[x]. • The binary-search-tree property guarantees that: • The minimum is located at the left-most node. • The maximum is located at the right-most node. Analysis Of Algorithms

  13. Tree ….. Binary Search Tree - Best Time ….. • All BST operations are O(d), where d is tree depth • minimum d is d=log2Nfor a binary tree with N nodes • What is the best case tree? • What is the worst case tree? • So, best case running time of BST operations is O(log N) Analysis Of Algorithms

  14. Tree …..Binary Search Tree - Worst Time ….. • Worst case running time is O(N) • What happens when you Insert elements in ascending order? • Insert: 2, 4, 6, 8, 10, 12 into an empty BST • Problem: Lack of “balance”: • compare depths of left and right subtree • Unbalanced degenerate tree Analysis Of Algorithms

  15. Tree Balanced and unbalanced BST 1 4 2 2 5 3 1 3 4 4 Is this “balanced”? 5 2 6 6 1 3 5 7 7 Analysis Of Algorithms

  16. Tree Rotations: Single Rotation ….. Analysis Of Algorithms

  17. Tree …..Rotations: Single Rotation ….. j j 2 2 6 6 1 2 1 1 k k 4 9 4 8 h h 0 0 0 0 1 0 0 Z Z 7 9 1 5 8 1 5 h+1 h+1 h h 0 Y Y 7 X X Analysis Of Algorithms

  18. Tree ……. Rotations ….. Analysis Of Algorithms

  19. Tree Analysis Of Algorithms

  20. Tree AVL Trees Analysis Of Algorithms

  21. Tree AVL(Adelson-Velskii-Landis) trees • AVL trees are balanced. • An AVL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at most 1. An example of an AVL tree where the heights are shown next to the nodes: Analysis Of Algorithms

  22. Tree Height of an AVL Tree ….. • Proposition: The height of an AVL tree T storing n keys is O(log n). • Justification: The easiest way to approach this problem is to find n(h): the minimum number of internal nodes of an AVL tree of height h. • We see that base case is n(0) = 1 and n(1) = 2 • For n ≥ 3, an AVL tree of height h contains the root node, one AVL subtree of height n-1 and the other AVL subtree of height n-2. • i.e. n(h) = 1 + n(h-1) + n(h-2) Analysis Of Algorithms

  23. Tree ………. Height of an AVL Tree • Knowing n(h-1) > n(h-2), we get n(h) > 2n(h-2) n(h) > 2n(h-2) n(h) > 4n(h-4) n(h) > 8n(h-6) … n(h) > 2in(h-2i) For any integer I such that h-2i  1 • Solving the base case we get: n(h) ≥ 2 h/2-1 • Taking logarithms: h < 2log n(h) +2 • Thus the height of an AVL tree is O(log n) Analysis Of Algorithms

  24. Tree Rotation: Double rotation (inside case) ….. 3 3 20 20 1 3 1 2 10 30 10 35 0 2 0 0 1 1 5 Imbalance 40 5 40 25 30 0 25 34 1 0 45 35 45 0 Insertion of 34 0 34 Analysis Of Algorithms

  25. Tree …..Rotations ….. Double rotation j k Z i X W V Analysis Of Algorithms

  26. Tree …..Rotations  A Double or Single X B Z C V W Analysis Of Algorithms

  27. Tree Red-BlackTrees Analysis Of Algorithms

  28. Tree Red andBlack Trees • A Red–Black tree is a binary search tree that inserts and deletes in such a way that the tree is always reasonably balanced. • Every node is red or black • The root is black • Every leaf is NIL and is black • If a node is red, then both its children are black • For each node, all paths from the node to descendant leaves contain the same number of black nodes. Analysis Of Algorithms

  29. Tree A Red andBlack Tree with n internal nodes has height at most 2log(n+1). Analysis Of Algorithms

  30. Tree G X U P G X P U Case 1 – U is Red Just recolor and move up Analysis Of Algorithms

  31. Tree G P U X X S G P S U Case 2 – Zig-Zag Double rotate X around P and X around G Recolor G and X Analysis Of Algorithms

  32. Tree G P U P S X G X Case 3 – Zig-Zig Single Rotate P around G Recolor P and G U S Analysis Of Algorithms

  33. Tree Insert 4 into this R-B Tree 11 14 2 15 1 7 5 8 Analysis Of Algorithms

  34. Tree • Red–Blacktrees offer worst-case guarantees for insertion time, deletion time, and search time. • The persistent version of Red–Black trees requires O(log n) worst-case for each insertion or deletion, in addition to time whereas oher BST’s require O(n). • Red–Blacktrees are also particularly valuable in functional programming, where they are one of the most common persistent data structures, used to construct associative arrays and sets which can retain previous versions after mutations. • Completely Fair Scheduler used in current Linux kernels uses Red–Blacktrees. Analysis Of Algorithms

More Related