Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIS 068 Welcome to CIS 068 ! Lesson 12: Data Structures 3 Trees.

Similar presentations


Presentation on theme: "CIS 068 Welcome to CIS 068 ! Lesson 12: Data Structures 3 Trees."— Presentation transcript:

1 CIS 068 Welcome to CIS 068 ! Lesson 12: Data Structures 3 Trees

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

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

4 CIS 068 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

5 CIS 068 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 completeincomplete depth 1 depth 2 depth 3

6 CIS 068 Complete Trees Properties: A complete tree with depth n has at most 2 n+1 – 1 elements A complete tree with depth n has at least 2 n 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 12 3 7 456 8 depth 1 depth 2 depth 3

7 CIS 068 Complete Trees Storage of complete trees in arrays: 0 12 3 7 456 8 012345678 … 2k+1, 2k+2k=3

8 CIS 068 Heap Def.: A complete binary tree where every node has a value greater than or equal to the key of its parent 89 7680 373239

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

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

11 CIS 068 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. Binary Search Trees 76 3980 324779

12 CIS 068 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) Binary Search Trees 76 39 80 3237 89

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

14 CIS 068 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. Balanced Trees

15 CIS 068 Remark: Every complete tree is balanced, but not vice versa ! Balanced Trees 12 8 18 51117 4

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

17 CIS 068 Rotation

18 CIS 068 Rotation

19 CIS 068 Rotation

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

21 CIS 068 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 AVL Trees

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

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

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

25 CIS 068 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 AVL Trees

26 CIS 068 …to be continued Trees


Download ppt "CIS 068 Welcome to CIS 068 ! Lesson 12: Data Structures 3 Trees."

Similar presentations


Ads by Google