01 Jul Instructions: 1. Task to alter familyTree.cpp to implement the find and numberOfCousins functions of the clas
Instructions:
1. Task to alter familyTree.cpp to implement the find and numberOfCousins functions of the class FamilyTree.
2. Code will be evaluated both on its ability to function correctly within the cousins application and on its ability to pass the unit tests provided.
– In the test report, tests 0…1 check the unit tests and tests 2…21 test the cousins application.
Input:
Input will be taken from standard input (cin) if no command line parameters are given, or from a file named in the first command line parameter if such a parameter is supplied. For example, the program could be invoked as
./cousins test0.in
or as
./cousins < test0.in
The input will begin with a single integer, k, where k is the identifier of the particular node for which we wish to count cousins.
This will be followed by the tree, written in a classic format for rendering trees called “s-expressions” The s-expression for a tree node is written within parentheses, with the node identifier immediately following the left parenthesis, followed by the s-expressions for all of its children, then the closing right parenthesis. If a node has no children, however, the parentheses can be omitted, leaving only the identifier. For example, a tree consisting only of a single root node with identifier 21 could be written as:
(21)
or
21
But a tree with a root node containing 21 and having two children 5 and 7 would be
(21 (5) (7))
or
(21 5 7)
The tree in the diagram above, could be written as
(1
(3 8 9)
(4 15)
(5 30 31 32)
)
Blank spaces and line breaks can be inserted as desired to improve the readability.
Every tree will have at least one node, and the node of interest, k, will always be found somewhere within the tree.
The Descriptions:
One of the common places where tree structures occur is in “family trees” that show the relationships within an extended family, children, parents, grandparents, great-grandparents, etc. Consider a family tree in which each node contains a number that serves a unique identifier. That identifier could, in a larger application, serve as an index into a genealogical database holding detailed information about the family members. Each node in the tree will represent a single person or a parental couple. The parent-child relationships in the tree match those in the actual family.
In the tree shown to the right (attached), for ex:, person/couple 1 are grandparents to the people represented by all of the leaf nodes. Person/couple 5 are parents to people 30, 31, & 32. 3, 4, and 5 are siblings, brothers and/or sisters sharing the same parents. Similarly, 30, 31, & 32 are siblings.
A person’s cousins are the children of the siblings of that person’s parents. Alternately, we could say that two nodes are considered to be cousins if they have different parents but the same grandparents.
For example, person 8’s cousins are 15, 30, 31, & 32 (but not 9). 15’s cousins are 8, 9, 30, 31, & 32.
Write a program that, given a tree and the identifier of a person in that tree, prints the number of cousins that person has.
Output:
Output is a single line containing a single integer, indicating the number cousins of node k.
Example:
Given the input
15
(1
(3 8 9)
(4 15)
(5 30 31 32)
)
the output would be
5
Given the input
3
(1
(3 8 9)
(4 15)
(5 30 31 32)
)
the output would be 0
Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteEdu. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.
Do you need help with this question?
Get assignment help from WriteEdu.com Paper Writing Website and forget about your problems.
WriteEdu provides custom & cheap essay writing 100% original, plagiarism free essays, assignments & dissertations.
With an exceptional team of professional academic experts in a wide range of subjects, we can guarantee you an unrivaled quality of custom-written papers.
Chat with us today! We are always waiting to answer all your questions.