Question: In Java, with comments throughout please help me with this code: In Listing 5.2 (linkList2.java, Lafore book), the linked list is unordered. Modify the code

In Java, with comments throughout please help me with this code:

In Listing 5.2 (linkList2.java, Lafore book), the linked list is unordered.

Modify the code so that the linked list is ordered, meaning that Link objects are linked in the ascending order of the key (iData).

You need to add an insert() method, and change the find() and delete() methods to have the logic of processing the list in the ordered fashion. Please test your code a few sets of values.

class Link { public int iData; // data item (key) public double dData; // data item public Link next; // next link in list

public Link(int id, double dd) // constructor { iData = id; dData = dd; }

public void displayLink() // display ourself { System.out.print({ + iData + , + dData + } ); } } // end class Link

//**************************************************************************************

class LinkList { private Link first; // ref to first link on list

public LinkList() // constructor { first = null; // no links on list yet }

public void insertFirst(int id, double dd) { // make new link Link newLink = new Link(id, dd); newLink.next = first; // it points to old first link first = newLink; // now first points to this }

public Link find(int key) // find link with given key { // (assumes non-empty list) Link current = first; // start at first while(current.iData != key) // while no match, { if(current.next == null) // if end of list, return null; // didnt find it else // not end of list, current = current.next; // go to next link } return current; // found it }

public Link delete(int key) // delete link with given key { // (assumes non-empty list) Link current = first; // search for link Link previous = first; while(current.iData != key) { if(current.next == null) return null; // didnt find it else { previous = current; // go to next link

current = current.next; } } // found it if(current == first) // if first link, first = first.next; // change first else // otherwise, previous.next = current.next; // bypass it return current; }

public void displayList() // display the list { System.out.print(List (first-->last): ); Link current = first; // start at beginning of list while(current != null) // until end of list, { current.displayLink(); // print data current = current.next; // move to next link } System.out.println(); } } // end class LinkList

//**************************************************************************

class LinkList2App { public static void main(String[] args) { LinkList theList = new LinkList(); // make list theList.insertFirst(22, 2.99); // insert 4 items theList.insertFirst(44, 4.99); theList.insertFirst(66, 6.99); theList.insertFirst(88, 8.99); theList.displayList(); // display list Link f = theList.find(44); // find item if( f != null) System.out.println(Found link with key + f.iData); else

System.out.println(Cant find link); Link d = theList.delete(66); // delete item if( d != null ) System.out.println(Deleted link with key + d.iData); else System.out.println(Cant delete link); theList.displayList(); // display list } // end main() } // end class LinkList2App

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!