publicclass Link {
publicint iData;//datapublicdouble dData;//datapublic Link next;//reference to next LinkpublicLink(int iData,double dData){
this.iData=iData;
this.dData=dData;
}
publicvoiddisplayLink(){
System.out.print("{"+iData+","+dData+"}");
}
}
publicclass LinkList {
private Link first;
publicLinkList(){
first=null;
}
public boolean isEmpty(){
return (first==null);
}
publicvoidinsertFirst(int id,double dd){
Link newLink = new Link(id,dd);
newLink.next=first;
first=newLink;
}
public Link deleteFirst(){
Link temp = first;//save reference to link
first = first.next;//delete it return temp;
}
publicvoiddisplayList(){
Link current =first;
while(current!=null){
current.displayLink();
current=current.next;
}
System.out.println("");
}
public Link find(int key){
Link current=first;
while(current.iData!=key){
if(current.next==null){
returnnull;
}
else{
current =current.next;
}
}
return current;
}
public Link delete(int key){
Link current=first;
Link previous=first;
while(current.iData!=key){
if(current.next==null){
returnnull;
}
else{
previous=current;
current =current.next;
}
}
if(current==first){
first=first.next;
}
else{
previous.next=current.next;
}
return current;
}
}
publicclassLinkListApp {/**
* @param args
*/publicstaticvoidmain(String[] args) {
// TODO Auto-generated method stub
LinkList theList = new LinkList();
theList.insertFirst(22, 2.99);
theList.insertFirst(44, 4.99);
theList.insertFirst(66, 6.99);
theList.displayList();
Link f = theList.find(22);
if(f!=null){
System.out.println("Found link with key:"+f.iData);
}
else{
System.out.println("Can't find link");
}
Link d =theList.delete(22);
if(d!=null){
System.out.println("Delete link with key:"+d.iData);
}
else{
System.out.println("Can't delete link");
}
while(!theList.isEmpty()){
Link aLink = theList.deleteFirst();
aLink.displayLink();
}
theList.displayList();
}
}