Consider the following Person class: class Person { private String name; private
ID: 3533989 • Letter: C
Question
Consider the following Person class:
class Person {
private String name;
private int age;
public Person(String name) {
setName(name);
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setAge (int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
}
I) Define a PNode class similar to the BNode class in the lecture notes. The data field of PNode points to a Person object, and the link field points to the next PNode in the list.
II) Using the PNode defined in part I, write a code that builds a linked list of Person objects. Prompt the user for a person
Explanation / Answer
import java.io.*;
import java.util.Scanner;
class Person {
private String name;
private int age;
public Person(String name) {
setName(name);
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setAge (int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
}
class PNode
{
public Person data;
public PNode link;
public PNode(String name,int age)
{ data=new Person(name);
data.setAge(age);
link=null;
}
}
class List{
public static void main(String args[]) throws IOException
{
Scanner s=new Scanner(System.in);
PNode start = null;
PNode current = start;
while(true)
{
System.out.println(" Enter Name and Age Separated by Space, Enter DONE to exit:");
String n = s.next();
if( n.equals("DONE") )
{ break; }
int a= s.nextInt();
if(start == null)
{ start = new PNode(n,a);
current =start;
}
else
{
PNode temp = new PNode(n,a);
current.link = temp;
current = temp;
}
}
System.out.println("Print List");
current =start;
while(current!=null)
{ System.out.println(current.data.getName()+" "+current.data.getAge());
current=current.link;
}
//function to get largest
getLargest(start);
}
static void getLargest(PNode s)
{
if(s==null)
{ System.out.println("List empty"); }
else
{
PNode oldest =s;
PNode cur=s.link;
while(cur!=null)
{
if( oldest.data.getAge() < cur.data.getAge() )
{ oldest =cur; }
cur=cur.link;
}
System.out.println("Oldest person is "+oldest.data.getName()+" at age "+oldest.data.getAge());
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.