Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4: Trees Part I: General Tree Concepts Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

Similar presentations


Presentation on theme: "Chapter 4: Trees Part I: General Tree Concepts Mark Allen Weiss: Data Structures and Algorithm Analysis in Java."— Presentation transcript:

1 Chapter 4: Trees Part I: General Tree Concepts Mark Allen Weiss: Data Structures and Algorithm Analysis in Java

2 Trees  Definitions  Representation  Binary trees  Traversals  Expression trees 2

3 Definitions 3 tree - a non-empty collection of vertices & edges vertex (node) - can have a name and carry other associated information path - list of distinct vertices in which successive vertices are connected by edges  any two vertices must have one and only one path between them else its not a tree  a tree with N nodes has N-1 edges

4 Definitions root - starting point (top) of the tree parent (ancestor) - the vertex “above” this vertex child (descendent) - the vertices “below” this vertex 4

5 Definitions leaves (terminal nodes) - have no children level - the number of edges between this node and the root ordered tree - where children’s order is significant 5

6 Definitions Depth of a node - the length of the path from the root to that node root: depth 0 Height of a node - the length of the longest path from that node to a leaf any leaf: height 0 Height of a tree: The length of the longest path from the root to a leaf 6

7 Balanced Trees  the difference between the height of the left sub-tree and the height of the right sub-tree is not more than 1. 7

8 Trees - Example 8 E R T ELPM EA S A root Leaves or terminal nodes Child (of root) Depth of T: 2 Height of T: 1 Level 0 1 3 2

9 Tree Representation 9 Class TreeNode { Object element; TreeNode firstChild; TreeNode nextSibling; }

10 Example 10 a bf e c d g a b e c d f g

11 Binary Tree 11 S A B N O N P D M I S Internal node External node

12 Height of a Complete Binary Tree 12 L 0 L 1 L 2 L 3 At each level the number of the nodes is doubled. total number of nodes: 1 + 2 + 2 2 + 2 3 = 2 4 - 1 = 15

13 Nodes and Levels in a Complete Binary Tree 13 Number of the nodes in a tree with M levels: 1 + 2 + 2 2 + …. 2 M = 2 (M+1) - 1 = 2*2 M - 1 Let N be the number of the nodes. N = 2*2 M - 1, 2*2 M = N + 1 2 M = (N+1)/2 M = log( (N+1)/2 ) N nodes : log( (N+1)/2 ) = O(log(N)) levels M levels: 2 (M+1) - 1 = O(2 M ) nodes

14 Binary Tree Node 14 Class BinaryNode { Object Element; // the data in the node BinaryNode left; // Left child BinaryNode right; // Right child }

15 Binary Tree – Preorder Traversal 15 C L R E T D O N U M P A Root Left Right First letter - at the root Last letter – at the rightmost node

16 Preorder Algorithm 16 preorderVisit(tree) { if (current != null) { process (current); preorderVisit (left_tree); preorderVisit (right_tree); }

17 Binary Tree – Inorder Traversal 17 U A E R T N P D M O C L Left Root Right First letter - at the leftmost node Last letter – at the rightmost node

18 Inorder Algorithm 18 inorderVisit(tree) { if (current != null) { inorderVisit (left_tree); process (current); inorderVisit (right_tree); }

19 Binary Tree – Postorder Traversal 19 D L U A N E P R O M C T Left Right Root First letter - at the leftmost node Last letter – at the root

20 Postorder Algorithm 20 postorderVisit(tree) { if (current != null) { postorderVisit (left_tree); postorderVisit (right_tree); process (current); }

21 Expression Trees 21 1 2 The stack contains references to tree nodes (bottom is to the left) + 1 2 3 * + 1 2 3 (1+2)*3 Post-fix notation: 1 2 + 3 *

22 Expression Trees 22 In-order traversal: (1 + 2) * ( 3) Post-order traversal: 1 2 + 3 * * + 1 2 3

23 Binary Search Trees  Definitions  Operations and complexity  Advantages and disadvantages  AVL Trees  Single rotation  Double rotation  Splay Trees  Multi-Way Search 23

24 Definitions 24 Each node – a record with a key and a value a left link a right link All records with smaller keys – left subtree All records with larger keys – right subtree

25 Example 25

26 Operations Search - compare the values and proceed either to the left or to the right Insertion - unsuccessful search - insert the new node at the bottom where the search has stopped Deletion - replace the value in the node with the smallest value in the right subtree or the largest value in the left subtree. Retrieval in sorted order – inorder traversal 26

27 Complexity 27  Logarithmic, depends on the shape of the tree  In the worst case – O(N) comparisons

28 Advantages of BST Simple Efficient Dynamic One of the most fundamental algorithms in CS The method of choice in manyapplications 28

29 Disadvantages of BST The shape of the tree depends on the order of insertions, and it can be degenerated. When inserting or searching for an element, the key of each visited node has to be compared with the key of the element to be inserted/found. Keys may be long and the run time may increase much. 29

30 Improvements of BST Keeping the tree balanced: AVL trees (Adelson - Velskii and Landis) Balance condition: left and right subtrees of each node can differ by at most one level. It can be proved that if this condition is observed the depth of the tree is O(logN). Reducing the time for key comparison: Radix trees - comparing only the leading bits of the keys (not discussed here) 30


Download ppt "Chapter 4: Trees Part I: General Tree Concepts Mark Allen Weiss: Data Structures and Algorithm Analysis in Java."

Similar presentations


Ads by Google