1 / 26

Welcome to CIS 068 !

This lesson introduces various types of trees, including binary trees, complete trees, heaps, binary search trees, and balanced trees. It explains their definitions, properties, storage methods, and uses. The lesson also covers AVL trees and the concept of rotation to create balanced trees.

freeland
Download Presentation

Welcome to CIS 068 !

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. Welcome to CIS 068 ! Lesson 12: Data Structures 3 Trees CIS 068

  2. Overview • Binary Trees • Complete Trees • Heaps • Binary Search Trees • Balanced Trees CIS 068

  3. Definitions root Node 0 is ancestor of all other nodes Nodes 1-6 are descendants of node 0 Node 0 Node 1,2,3 are children of root Node 1 Node 2 Node 3 Node 1 is parent of Nodes 4,5 Node 4 Node 5 Node 6 Node 4 and 5 are siblings leaves CIS 068

  4. Binary Trees • Def. (recursively defined data structure): • A binary tree is either • empty (no nodes), or • has a root node, a left binary tree, and a right binary tree as children • … hence it is a tree with at most two children for each node CIS 068

  5. Complete Trees • Def.: • A tree in which all leaf nodes are at some depth n or n-1, and all leaves at depth n are toward the left depth 1 depth 2 depth 3 complete incomplete incomplete CIS 068

  6. Complete Trees • Properties: • A complete tree with depth n has at most 2n+1 – 1 elements • A complete tree with depth n has at least 2n elements • The index of the left child of node k is 2k+1, the index of the right child of node is 2k+2 0 depth 1 depth 2 depth 3 1 2 3 4 5 6 7 8 CIS 068

  7. Complete Trees • Storage of complete trees in arrays: 0 1 2 3 4 5 6 7 8 … 0 1 2 3 4 5 6 7 8 k=3 2k+1, 2k+2 CIS 068

  8. Heap • Def.: • A complete binary tree where every node has a value greater than or equal to the key of its parent 89 76 80 37 32 39 CIS 068

  9. Heap • What for ? • Sorting (HEAPSORT): • Sort elements into heap structure • How to • Insert ? • Delete ? • Order of magnitude ? CIS 068

  10. Heap • Example of Heapsort: HEAPSORT-APPLET • Insert / Delete: (board) • Heaps provide a structure for efficient retrieval of maximum values ! • How to look for arbitrary values ? Binary Search Trees ! CIS 068

  11. Binary Search Trees • Def.: • A binary tree where every node's left subtree has values less than the node's value, and every right subtree has values greater. 76 39 80 32 47 79 CIS 068

  12. Binary Search Trees • Remarks: • A heap is NOT a binary search tree ! • A binary search tree is not necessarily complete (see example)! • (Worst case: create BST of sorted list) 89 80 76 39 32 37 CIS 068

  13. Binary Search Trees • How to search in binary search tree ? • (Answer is straightforward) • Applet: animated BST • Order of magnitude ? • How to achieve O(log n) ? • balanced binary search trees ! CIS 068

  14. Balanced Trees • Def.: • A tree whose subtrees differ in height by no more than one and the subtrees are height-balanced, too. An empty tree is height-balanced. CIS 068

  15. Balanced Trees • Remark: • Every complete tree is balanced, but not vice versa ! 12 18 8 5 11 17 4 CIS 068

  16. Binary Search Trees • How to create balanced trees ? • Rotation ! CIS 068

  17. Rotation CIS 068

  18. Rotation CIS 068

  19. Rotation CIS 068

  20. AVL Trees • How to use Rotation to create balanced trees: • AVL Trees • (Adelson-Velskii + Landis, 1962) CIS 068

  21. AVL Trees • Idea: • Keep track of the difference in the depth of each subtree as items are inserted or removed • Use rotation to bring tree into balance if difference is not in range of +-1 CIS 068

  22. AVL Trees • Example 1: single rotation • Is a single rotation always the solution ? CIS 068

  23. AVL Trees • Example 2: single rotation • Example 2: the left-heavy tree got a right-heavy tree ! CIS 068

  24. AVL Trees • Example 3: rotation of subtrees • Balance is achieved by rotating the subtrees in ‘a certain way’ CIS 068

  25. AVL Trees • Resume: • Special binary trees provide an efficient structure for sorting and searching • Complete binary trees can be stored in an array without link-structure overhead • Heaps are used to sort arrays for retrieval of maximum values (typical application: shape-abstraction- assignment !) • Binary search trees are used for access to arbitrary objects in O(log n), achieved by balancing trees • AVL trees are one example for balanced trees, using rotation to keep the balance CIS 068

  26. Trees • …to be continued CIS 068

More Related