Find the friends of x that consider x as their friend

Assignment Help Data Structure & Algorithms
Reference no: EM131967021

Binary Search Trees Assignment

Learning Objectives:

- Learning how to design Binary Search Trees

Problem Statement

This assignment involves modeling a community of people using the data structures we covered in class to be able to answer certain questions about a community and its members.

Each member x of the community is a person that has a unique SSN, a name (first and last name), a mother, a father, and a list of people (from within the community) that x considers to be his/her friends.

Note that if x considers y a friend, it does not necessarily follow that y considers x a friend. The kinds of queries that your program should be able to answer are:

For a given person x, find all the children of x;

For a given person x, find all the half-siblings of x; For a given person x, find all the full-siblings of x;

For a given person x, find the friends of x that consider x as their friend as well; For a given person x, find all the Persons that consider x as their friend;

Who has the most mutual friends;

The precise types of questions your program should answer are detailed below. The Input:

Your program will take two input files from the command prompt, the first file containing the information about the community, and the second file containing the queries that your program should answer.

The first input file, which has the information about the community, will be such that each person has one "paragraph", with at least one blank between successive paragraphs. The format of the paragraph of a person is:

FIRST NAME: word // just one word representing the first name LAST NAME: word // just one word representing the last name SSN: number // social security number (any unsigned integer) FATHER: number // representing the SSN of the father MOTHER: number // representing the SSN of the mother FRIENDS: a coma-separated list of SSNs of this person's friends

Note: The list after FRIENDS is the list of the SSNs of the people that the person in question considers to be his/her friends. Those SSNs are not necessarily sorted.

The second input file will have a sequence of queries, one query per line, where each query is any of the following:

NAME-OF SSN MOTHER-OF SSN FATHER-OF SSN

HALF-SIBLINGS-OF SSN FULL-SIBLINGS-OF SSN CHILDREN-OF SSN MUTUAL-FRIENDS-OF SSN INVERSE-FRIENDS-OF SSN

WHO-HAS-MOST-MUTUAL-FRIENDS

Note that SSN in the above queries stands for an unsigned int.

The output:

Your program must take as input the two input files above, in that order. That is, we should be able to compile your program into, then call it from the argument list on Eclipse or you can use the filereader and read communityFileName.txt and queriesFileName.txt

Make sure that the files are within your source code file so you do not have to specify the full path of the input files.

Your program must then output as many lines as there are query lines in Eclipse: the kth output line should be the answer to the kth query line in file queriesFileName.

Your output line answer to a query should begin by repeating the exact same query, followed by a colon (:), followed by the query-answer. The query-answer for the first three types of query should be the two words representing the first and last name of the answer-person. The query-answer for the next five types of query should be a list of first name and last name pairs, separated by commas, and ordered so that their SSNs are in increasing order.

For example, a possible output for "CHILDREN-OF 3155" can be: CHILDREN-OF 3155: John Smith, Adam Smith, Susan Smith

And for the query "MUTUAL-FRIENDS-OF 3155", a possible answer can be: MUTUAL-FRIENDS-OF 3155: John Redman, Janet Fisher, Joe Fisher

The answer to INVERSE-FRIENDS-OF SSN query should consist of the people that consider the person with the specified SSN to be their friend.

The answer to a WHO-HAS-MOST-MUTUAL-FRIENDS query should be the full name of the person who has the most mutual friends; in case of a tie, choose the one with the smallest SSN.

Reference no: EM131967021

Questions Cloud

What theory is best for recovering the price of the suit : Sam bought a new suit. The first time Sam took the suit to the cleaners, it disintegrated through no fault of the cleaners.
What would be the average fixed cost per unit : What would be the average fixed cost per unit at an activity level of 5,200 units? Assume that this level of activity is within the relevant range
Determine and apply the initial switch configuration : According to the Lab Layout Reference Diagram, determine and apply the initial switch configuration on the NYACCESS1 and NYCORE1 switches.
Development of sustainable home with net zero energy : CSM80002 - Environmental Sustainability in Construction - Development of Sustainable Home with Net Zero Energy - Estimate operating energy and carbon emission
Find the friends of x that consider x as their friend : For a given person x, find the friends of x that consider x as their friend as well; For a given person x, find all the Persons that consider x as their friend;
How much depreciation expense should the company recognize : Using the straight-line method, how much depreciation expense should the company recognize on December 31, Year 1
Explain in your own words the processes used by the stuxnet : Explain in your own words the processes used by the Stuxnet attackers to conceal their actions.
Calculate the machines book value at the end of year : The machine's useful life is estimated to be 4 years with a $7,900 salvage value. Calculate the machine's book value at the end of year 3
Allowing for a probability of a type i error : A sample of 9 mechanical boxing kangaroos is tested using the Duracell batteries with the following life times recorded in hours:

Reviews

Write a Review

Data Structure & Algorithms Questions & Answers

  Implement an open hash table

In this programming assignment you will implement an open hash table and compare the performance of four hash functions using various prime table sizes.

  Use a search tree to find the solution

Explain how will use a search tree to find the solution.

  How to access virtualised applications through unicore

How to access virtualised applications through UNICORE

  Recursive tree algorithms

Write a recursive function to determine if a binary tree is a binary search tree.

  Determine the mean salary as well as the number of salaries

Determine the mean salary as well as the number of salaries.

  Currency conversion development

Currency Conversion Development

  Cloud computing assignment

WSDL service that receives a request for a stock market quote and returns the quote

  Design a gui and implement tic tac toe game in java

Design a GUI and implement Tic Tac Toe game in java

  Recursive implementation of euclids algorithm

Write a recursive implementation of Euclid's algorithm for finding the greatest common divisor (GCD) of two integers

  Data structures for a single algorithm

Data structures for a single algorithm

  Write the selection sort algorithm

Write the selection sort algorithm

  Design of sample and hold amplifiers for 100 msps by using n

The report is divided into four main parts. The introduction about sample, hold amplifier and design, bootstrap switch design followed by simulation results.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd