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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.