Download presentation
Presentation is loading. Please wait.
Published byBathsheba Hunt Modified over 9 years ago
1
Chapter 14 Ancestor Tree
2
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-2 Chapter Objectives Provide a case study example from problem statement through implementation Demonstrate how a binary tree can be used to solve a problem
3
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-3 Ancestor Trees An ancestor tree is a tree that represents a person’s biological heritage A theoretical ancestor tree is a perfectly balanced, inverted, binary tree
4
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-4 Ancestor Trees For this case study we will create a graphical implementation of an ancestor tree with the following functional requirements: – enter a person as a starting point – enter a parent for any individual in the tree that does not already have two parents listed – find a person in the tree (or determine they are not in the tree) – remove an individual from the tree – remove an ancestral line from the tree – remove all of the individuals from the tree – return the height of the tree
5
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-5 Ancestor Trees In addition, we will also keep track of the siblings for each of the individuals in the tree Since the tree itself simply represents parents and a single child, the siblings will have to be stored separately One additional long-term goal (programming project 14.6) is to allow the user to save and retrieve their work from a file
6
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-6 Ancestor Tree - Design Our system is made up of four high-level components – The driver – The graphical user interface – The class that we will use to represent an individual – The ancestor tree implementation itself
7
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-7 Ancestor Tree - Design In this case, our ancestor tree is an obvious refinement of a binary tree Thus, this example fits the concept of re-use based development Our BinaryTreeADT that we defined in chapter 12 provides most of the functionality that we will need Since one of the long-term goals of this project is to save and retrieve our work from a file, we choose to extend an array implementation of a binary tree
8
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-8 FIGURE 14.1 The BinaryTreeADT interface
9
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-9 AncestorTree - the Person Class The Person class must provide variables to represent – First name – Last name – Date of birth – Date of death – Occupation – Address
10
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-10 AncestorTree - the Person Class The Person class must provide a constructor, a compareTo method (implements Comparable), and a toString method
11
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-11 AncestorTree - the AncestorTreeNode Class The AncestorTreeNode class is designed to serve as a container for the whatever type of object we are storing in the ancestor tree This class provides a double ordered list to keep track of siblings and provides an element variable to store the person (or other animal) represented by this node This class also provides a constructor, a method to add a sibling, and a toString method
12
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-12 AncestorTree - the AncestorTree Class The AncestorTree class extends the ArrayBinaryTree class The class provides a variable to represent the height of the tree The class provides methods to: – Add an element – Remove an element – Remove the left or right ancestral line – Return the height of the tree – Remove all of the elements – Find an element – Determine if an element exists in the tree
13
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-13 AncestorTree - the AncestorTree Class Since the AncestorTree class extends the ArrayBinaryTree class, it also inherits all of the methods of that class including iterators and the toString method
14
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-14 AncestorTree - the AncestorGUI Class The AncestorGUI class provides a graphical, direct- manipulation interface for the ancestor tree This allows the user to click directly on the person they wish to edit
15
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-15 AncestorTree - the AncestorDemo Class The AncestorDemo class serves as the driver for our system It simply creates an instance of the AncestorGUI class and calls its display method
16
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-16 FIGURE 14.2 User interface design for Ancestor Tree system
17
Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 14-17 FIGURE 14.3 UML description of Ancestor Tree system
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.