linkedList problem
I cannot seem to print my link list out while traversing it... nothing comes up
Driver Class
import java.util.Scanner;
publicclass Driver{
publicstaticvoid main(String[] args){
System.out.println("[Address Book - Stores Names and Numbers]");
System.out.println("1. Add Name and Number");
System.out.println("2. Delete Contact");
System.out.println("3. Search for Contact");
System.out.println("4. Print Phone Book");
System.out.println("5. Exit");
Scanner keyboard =new Scanner(System.in);
Scanner data =new Scanner(System.in);
int input = keyboard.nextInt();
while((input < 6)&&(input > 0))
{
if(input == 1)
{
System.out.println("Enter Full Name: ");
String name = data.next();
System.out.println("Enter Phone Number: ");
String phoneNum = data.next();
System.out.println("Data Entered!");
PhoneNumber ph =new PhoneNumber(name, phoneNum);
ph.setName(name);
ph.setPhoneNum(phoneNum);
Driver.main(args);
}
elseif(input == 2)
{
System.out.print("Enter Full Name To Delete Contact: ");
String name = data.next();
Driver.main(args);
}
elseif(input == 3)
{
System.out.print("Enter Full Name To Search Contact: ");
String name = data.next();
DoubleLink db =new DoubleLink();
db.retrieve(name);
Driver.main(args);
}
elseif(input == 4)
{
System.out.print("[Phone Book List]");
DoubleLink db =new DoubleLink();
db.traverse();
Driver.main(args);
}
elseif(input == 5)
{
System.exit(0);
}
}
System.out.print("Please Enter a Number 1 to 4: ");
Driver.main(args);
}//main
}//Driver
DoubleLink Class
publicclass DoubleLink
{
private DoubleLink next;
private DoubleLink prev;
private DoubleLink head;
private DoubleLink tail;
private NodeData data;
//Main constructor
DoubleLink()
{
next =null;
prev =null;
tail =null;
head =null;
}
publicvoid addInfo(String name, String phoneNum)
{
DoubleLink newNode =new DoubleLink();
next =null;
prev =null;
if(head !=null)
{
newNode.next = head;
head.prev = newNode;
head = newNode;
}
else
{
head = tail = newNode;
}
}
public NodeData retrieve(String name)
{
DoubleLink current = head;
while(current !=null)
{
// if(current.data == name)
// return data;
current = current.next;
}
returnnull;
}
publicvoid traverse()
{
DoubleLink current = head;
while(current !=null)
{
System.out.print(current.next);
current = current.next;
}
}
publicboolean delPhoneNum(String name)
{
DoubleLink current = head;
DoubleLink prev =null;
while(current !=null)
{
if(current.data == name)
{
prev.next = current.next;
returntrue;
}
prev = current;
current = current.next;
}
returnfalse;
}
}//DoubleLink
PhoneNumber class
publicclass PhoneNumberimplements InterfaceShell{
private String name;
private String phoneNum;
private Object data;
public PhoneNumber(String name, String phoneNum)
{
this.name = name;
this.phoneNum = phoneNum;
}
publicvoid setName(String name){
this.name = name;
}
publicvoid setPhoneNum(String phoneNum){
this.phoneNum = phoneNum;
}
public String getPhoneNum(){
return phoneNum;
}
public String getName(){
return name;
}
publicvoid print()
{
System.out.println("Name: "+getName()+" Phone: "+ getPhoneNum());
}
//unimplemented methods
publicvoid addInfo(String name, String phoneNum){
PhoneNumber data =new PhoneNumber(name, phoneNum);
data.addInfo(name, phoneNum);
}
publicvoid delPhoneNum(String name, String phoneNum){
}
public Object traverse(String name, String phoneNum){
return (String) data;
}
public String retrieve(String name){
// TODO Auto-generated method stub
return name;
}
}
NodeData class
publicclass NodeData{
private PhoneNumber data;
private DoubleLink prev;
private DoubleLink next;
public NodeData(String name, String phoneNum)
{
data=new PhoneNumber(name, phoneNum);
prev=null;
next=null;
}
public PhoneNumber getData()
{
return data;
}
public DoubleLink getNext()
{
return next;
}
public DoubleLink getPrev()
{
return prev;
}
publicvoid setNext (DoubleLink nextInfo)
{
next=nextInfo;
}
publicvoid setPrev(DoubleLink prevInfo)
{
prev=prevInfo;
}
}
Interface
publicinterface InterfaceShell
{
publicvoid addInfo(String phoneNum, String name);
publicvoid delPhoneNum(String phoneNum, String name);
public Object traverse(String phoneNum, String name);
public String retrieve(String name);
}

