Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a mediod to merge two linked lists of integers diat are sorted into descen

ID: 3697934 • Letter: W

Question

Write a mediod to merge two linked lists of integers diat are sorted into descending order. The result should be a diird linked list that is the sorted combination of die original lists. Do not destroy die original lists. I've already done this However I need help writing a main method to test it! Thanks

import java.util.Iterator;
import java.util.LinkedList;
public class Exercise6
{
public static LinkedList<Integer> merge(LinkedList<Integer> a,LinkedList<Integer> b)
{
//Initialize variables
LinkedList<Integer> result = new LinkedList<Integer>();
Iterator<Integer> aI = a.iterator();
Iterator<Integer> bI = b.iterator();
int aTemp = 0;
int bTemp = 0;

//Get the first values from both lists using the next method
aTemp = aI.next();
bTemp = bI.next();

while(aI.hasNext() && bI.hasNext())
{
//Comparing the two elements
if(aTemp > bTemp)
{
result.add(bTemp);
bTemp = bI.next();
}
}

if(!aI.hasNext())
{
result.add(aTemp);
}

while(aI.hasNext())
{
result.add(aTemp);
aTemp = aI.next();
}

while(bI.hasNext())
{
result.add(bTemp);
bTemp = bI.next();
}

if(!aI.hasNext())
{
result.add(aTemp);
}
else
{
result.add(bTemp);
}
return result;
}
}

Explanation / Answer

import java.util.Iterator;
import java.util.LinkedList;

public class Exercise6 {
   /**
   * @param args
   */
   public static void main(String[] args) {

       try {

           LinkedList<Integer> integers1 = new LinkedList<Integer>();
           LinkedList<Integer> integers2 = new LinkedList<Integer>();

           integers1.add(1);
           integers1.add(2);
           integers1.add(5);
           integers1.add(4);
           integers1.add(6);

           integers2.add(6);
           integers2.add(3);
           integers2.add(5);
           integers2.add(4);
           integers2.add(2);

           LinkedList<Integer> mergedInts = merge(integers1, integers2);
           System.out.println(mergedInts);
           for (Iterator iterator = mergedInts.iterator(); iterator.hasNext();) {
               Integer integer = (Integer) iterator.next();
               System.out.println(integer);

           }
       } catch (Exception e) {

           // TODO: handle exception
           e.printStackTrace();
       }
   }

   /**
   * @param a
   * @param b
   * @return
   */
   public static LinkedList<Integer> merge(LinkedList<Integer> a,
           LinkedList<Integer> b) {
       // Initialize variables
       LinkedList<Integer> result = new LinkedList<Integer>();
       Iterator<Integer> aI = a.iterator();
       Iterator<Integer> bI = b.iterator();
       int aTemp = 0;
       int bTemp = 0;
       // Get the first values from both lists using the next method
       aTemp = aI.next();
       bTemp = bI.next();
       while (aI.hasNext() && bI.hasNext()) {
           // Comparing the two elements
           if (aTemp > bTemp) {
               result.add(bTemp);
               bTemp = bI.next();
           }
       }
       if (!aI.hasNext()) {
           result.add(aTemp);
       }
       while (aI.hasNext()) {
           result.add(aTemp);
           aTemp = aI.next();
       }
       while (bI.hasNext()) {
           result.add(bTemp);
           bTemp = bI.next();
       }
       if (!aI.hasNext()) {
           result.add(aTemp);
       } else {
           result.add(bTemp);
       }
       return result;
   }
}

NOTE: merge() method not giving desired result, i didnt touch the merge(), as per your requirement , just i written the main() method to use that

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote