Chapter 11 A Trees. © 2004 Pearson Addison-Wesley. All rights reserved 11 A-2 Terminology A tree consists of vertices and edges, –An edge connects to.

Slides:



Advertisements
Similar presentations
CSC 205 – Java Programming II Lecture 35 April 17, 2002.
Advertisements

Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
Class 8: Trees. cis 335 Fall 2001 Barry Cohen Definitions n A tree is a nonlinear hierarchical structure (more than one successor) n Consists of nodes.
© 2006 Pearson Addison-Wesley. All rights reserved11 B-1 Chapter 11 (continued) Trees.
Trees. Terminology Trees are hierarchical –“parent-child” relationship A is the parent of B B is a child of A B and C are siblings Generalized to ancestor.
Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.
1 Introduction to Binary Trees. 2 Background All data structures examined so far are linear data structures. Each element in a linear data structure has.
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Trees Chapter 25 Slides by Steve Armstrong LeTourneau University Longview, TX  2007,  Prentice Hall.
Chapter 12 Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define trees as data structures Define the terms.
Trees Chapter 23 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
CHAPTER 12 Trees. 2 Tree Definition A tree is a non-linear structure, consisting of nodes and links Links: The links are represented by ordered pairs.
Marc Smith and Jim Ten Eyck
C o n f i d e n t i a l HOME NEXT Subject Name: Data Structure Using C Unit Title: Trees.
Joseph Lindo Trees Sir Joseph Lindo University of the Cordilleras.
Trees & Graphs Chapter 25 Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved X.
Trees Chapter 15 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
CS Data Structures Chapter 15 Trees Mehmet H Gunes
Course: Programming II - Abstract Data Types Slide Number 1 The ADT Binary Tree Definition The ADT Binary Tree is a finite set of nodes which is either.
CS Data Structures Chapter 5 Trees. Chapter 5 Trees: Outline  Introduction  Representation Of Trees  Binary Trees  Binary Tree Traversals 
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 10: Trees Data Abstraction & Problem Solving with C++
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver. 5.0.
© 2011 Pearson Addison-Wesley. All rights reserved 11 B-1 Chapter 11 (continued) Trees.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Chapter 10-A Trees Modified
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 4. Trees.
Computer Science: A Structured Programming Approach Using C Trees Trees are used extensively in computer science to represent algebraic formulas;
Chapter 11 B Trees. © 2004 Pearson Addison-Wesley. All rights reserved 11 B-2 The ADT Binary Search Tree A deficiency of the ADT binary tree which is.
Review 1 Queue Operations on Queues A Dequeue Operation An Enqueue Operation Array Implementation Link list Implementation Examples.
Trees : Part 1 Section 4.1 (1) Theory and Terminology (2) Preorder, Postorder and Levelorder Traversals.
Introduction to Trees IT12112 Lecture 05 Introduction Tree is one of the most important non-linear data structures in computing. It allows us to implement.
Trees By P.Naga Srinivasu M.tech,(MBA). Basic Tree Concepts A tree consists of finite set of elements, called nodes, and a finite set of directed lines.
M180: Data Structures & Algorithms in Java Trees & Binary Trees Arab Open University 1.
Trees Chapter 10. CS 308 2Chapter Trees Preview: Preview: The data organizations presented in previous chapters are linear, in that items are one.
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Data Abstraction and Problem Solving with JAVA Walls and Mirrors Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley Data Abstraction and Problem.
Foundation of Computing Systems Lecture 4 Trees: Part I.
TREES General trees Binary trees Binary search trees AVL trees Balanced and Threaded trees.
1 Trees. 2 Trees Trees. Binary Trees Tree Traversal.
Tree Representation and Terminology Binary Trees Binary Search Trees Pointer-Based Representation of a Binary Tree Array-Based Representation of a Binary.
What is a Tree? Formally, we define a tree T as a set of nodes storing elements such that the nodes have a parent-child relationship, that satisfies the.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 4. Trees.
Chapter 10 Trees © 2006 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.
Trees Chapter 15.
CSCE 210 Data Structures and Algorithms
Trees Chapter 11 (continued)
Trees Chapter 11 (continued)
CS 302 Data Structures Trees.
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Csc 2720 Instructor: Zhuojun Duan
Section 8.1 Trees.
Binary Trees, Binary Search Trees
Ch. 11 Trees 사실을 많이 아는 것 보다는 이론적 틀이 중요하고, 기억력보다는 생각하는 법이 더 중요하다.
TREES General trees Binary trees Binary search trees AVL trees
CS223 Advanced Data Structures and Algorithms
Introduction to Trees IT12112 Lecture 05.
CSE 373, Copyright S. Tanimoto, 2002 Binary Trees -
Trees Chapter 10.
Trees.
CSE 373, Copyright S. Tanimoto, 2001 Binary Trees -
Chapter 20: Binary Trees.
B.Ramamurthy Chapter 9 CSE116A,B
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
CSC 205 – Java Programming II
General Tree Concepts Binary Trees
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

Chapter 11 A Trees

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-2 Terminology A tree consists of vertices and edges, –An edge connects to vertices. –No cycles Definition of a general (rooted) tree –A general tree T is a set of one or more nodes such that T is partitioned into disjoint subsets: A single node r, the root Sets that are general trees, called subtrees of r Definition of a binary tree –A binary tree is a set T of nodes such that either T is empty, or T is partitioned into three disjoint subsets: –A single node r, the root –Two possibly empty sets that are binary trees, called left and right subtrees of r Many tree terminologies are defined recursively!

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-3 Terminology Figure 11.1Figure 11.2 A general tree A subtree of the tree in Figure 11.1 A BC DEF B DEF

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-4 Terminology Figure 11.4 Binary trees that represent algebraic expressions

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-5 Terminology A binary search tree –A binary tree that has the following properties for each node n n’s value is greater than all values in its left subtree T L n’s value is less than all values in its right subtree T R Both T L and T R are binary search trees Figure 11.5 A binary search tree of names

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-6 Terminology The height of trees –Level of a node n in a tree T If n is the root of T, it is at level 1 If n is not the root of T, its level is 1 greater than the level of its parent –Height of a tree T defined in terms of the levels of its nodes If T is empty, its height is 0 If T is not empty, its height is equal to the maximum level of its nodes –Recurrence relation of height height(T) = 0, if T is empty height(T) = 1 + max{height(T 1 ), height(T 2 )}, otherwise

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-7 Terminology Figure 11.6 Binary trees with the same nodes but different heights Level 1 Level 2 Level 3 Height = ? Level 1 Level 2 Level 3 Level 4 Level 5

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-8 Terminology Full, complete, and balanced binary trees –Recursive definition of a full binary tree If T is empty, T is a full binary tree of height 0 If T is not empty and has height h > 0, T is a full binary tree if its root’s subtrees are both full binary trees of height h – 1 Figure 11.7 A full binary tree of height 3

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-9 Terminology Complete binary trees –A binary tree T of height h is complete if All nodes at level h – 2 and above have two children each, and When a node at level h – 1 has children, all nodes to its left at the same level have two children each, and When a node at level h – 1 has one child, it is a left child Figure 11.8 A complete binary tree level h – 2 level h – 1

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-10 Terminology Balanced binary trees –A binary tree is balanced if the height of any node’s right subtree differs from the height of the node’s left subtree by no more than 1 –Examples? Full binary trees are complete Complete binary trees are balanced

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-11 Terminology Summary of tree terminology –General tree A set of one or more nodes, partitioned into a root node and subsets that are general subtrees of the root –Parent of node n The node directly above node n in the tree –Child of node n A node directly below node n in the tree –Root The only node in the tree with no parent

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-12 Terminology Summary of tree terminology (Continued) –Leaf A node with no children –Siblings Nodes with a common parent –Ancestor of node n A node on the path from the root to n –Descendant of node n A node on a path from n to a leaf –Subtree of node n A tree that consists of a child (if any) of n and the child’s descendants

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-13 Terminology Summary of tree terminology (Continued) –Height The number of nodes on the longest path from the root to a leaf –Binary tree A set of nodes that is either empty or partitioned into a root node and one or two subsets that are binary subtrees of the root Each node has at most two children, the left child and the right child –Left (right) child of node n A node directly below and to the left (right) of node n in a binary tree

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-14 Terminology Summary of tree terminology (Continued) –Left (right) subtree of node n In a binary tree, the left (right) child (if any) of node n plus its descendants –Binary search tree A binary tree where the value in any node n is greater than the value in every node in n’s left subtree, but less than the value of every node in n’s right subtree –Empty binary tree A binary tree with no nodes

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-15 Terminology Summary of tree terminology (Continued) –Full binary tree A binary tree of height h with no missing nodes All leaves are at level h and all other nodes each have two children –Complete binary tree A binary tree of height h that is full to level h – 1 and has level h filled in from left to right –Balanced binary tree A binary tree in which the left and right subtrees of any node have heights that differ by at most 1

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-16 The ADT Binary Tree: Basic Operations of the ADT Binary Tree The operations available for a particular ADT binary tree depend on the type of binary tree being implemented Basic operations of the ADT binary tree (page 527) –createBinaryTree() –createBinaryTree(rootItem) –makeEmpty() –isEmpty() –getRootItem() throws TreeException

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-17 General Operations of the ADT Binary Tree General operations of the ADT binary tree (pages 572 – 573), in addition to the basic operations –createBinaryTree (rootItem, leftTree, rightTree) –setRootItem(newItem) –attachLeft(newItem) throws TreeException –attachRight(newItem) throws TreeException –attachLeftSubtree(leftTree) throws TreeException –attachRightSubtree(rightTree) throws TreeException –detachLeftSubtree() throws TreeException –detachRightSubtree() throws TreeException How do you build the tree in Figure 11-6 (b)?

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-18 Traversal of a Binary Tree A traversal algorithm for a binary tree visits each node in the tree Recursive traversal algorithms –Preorder traversal: root-left-right –Inorder traversal: left-root-right –Postorder traversal: left-right-root Traversal is O(n), where n is the number of nodes in the tree

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-19 Traversal of a Binary Tree Preorder traversal algorithm preorder(binTree) if (binTree is not empty) { process the data in the root of binTree preorder(Left subtree of binTree’s root) preorder(Right subtree of binTree’s root) }

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-20 Traversal of a Binary Tree Inorder traversal algorithm inorder(binTree) if (binTree is not empty) { inorder(Left subtree of binTree’s root) process the data in the root of binTree inorder(Right subtree of binTree’s root) }

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-21 Traversal of a Binary Tree Postorder traversal algorithm postorder(binTree) if (binTree is not empty) { postorder(Left subtree of binTree’s root) postorder(Right subtree of binTree’s root) process the data in the root of binTree }

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-22 Traversal of a Binary Tree Figure Traversals of a binary tree: a) preorder; b) inorder; c) postorder

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-23 Possible Representations of a Binary Tree An array-based representation –A Java class is used to define a node in the tree –A binary tree is represented by using an array of tree nodes –Each tree node contains a data portion and two indexes (one for each of the node’s children) –Requires the creation of a free list which keeps track of available nodes

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-24 Possible Representations of a Binary Tree Figure 11.11b b) its array-based implementations Figure 11.11a a) A binary tree of names

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-25 Possible Representations of a Binary Tree An array-based representation of a complete tree –If the binary tree is complete and remains complete A memory-efficient array-based implementation can be used Example: Heap (later …)

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-26 Possible Representations of a Binary Tree Figure An array-based implementation of the complete binary tree in Figure Figure Level-by-level numbering of a complete binary tree

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-27 Possible Representations of a Binary Tree A reference-based representation –Java references can be used to link the nodes in the tree Figure A reference-based implementation of a binary tree

© 2004 Pearson Addison-Wesley. All rights reserved 11 A-28 A Reference-Based Implementation of the ADT Binary Tree Classes which provide a reference-based implementation for the ADT binary tree –TreeNode Represents a node in a binary tree (pages 581) –TreeException An exception class (page 581) –BinaryTreeBasis An abstract class of basic tree operation (pages 581 – 582) –BinaryTree Provides the general operations of a binary tree (page 582 – 585) Extends BinaryTreeBasis