Question: I need help. I need to write a method to determine if a chain of linked nodes is sorted in ascending order. The method header

I need help. I need to write a method to determine if a chain of linked nodes is sorted in ascending order. The method header is:

public boolean isSortedAscending(Node firstInChain)

For full credit, write a solution that is O(n ).

I have driver program where I implemented my method:

public class HomeworkW08Driver

{

public static void main(String[] args)

{

// this code uses the same values as the arrays above

Node sortedChain1 = new Node(2, new Node(5, new Node(7,

new Node(9, new Node(13, new Node(15,

new Node(18)))))));

Node sortedChain2 = new Node(2, new Node(3, new Node(4,

new Node(5, new Node(6, new Node(7,

new Node(8)))))));

Node sortedChain3 = new Node(2, new Node(3, new Node(4,

new Node(5, new Node(6, new Node(7,

new Node(7)))))));

Node sortedChain4 = new Node(2, new Node(2, new Node(2,

new Node(2, new Node(2, new Node(2,

new Node(2)))))));

Node sortedChain5 = null; // empty chain

Node unsortedChain1 = new Node(8, new Node(7, new Node(6,

new Node(5, new Node(4, new Node(3,

new Node(2, new Node(1))))))));

Node unsortedChain2 = new Node(2, new Node(9, new Node(7,

new Node(13, new Node(18, new Node(15,

new Node(4)))))));

Node unsortedChain3 = new Node(2, new Node(3, new Node(4,

new Node(5, new Node(6, new Node(7,

new Node(6)))))));

Node sortedWordChain1 = new Node("apple", new Node("banana",

new Node("carrot", new Node("durian"))));

Node unSortedWordChain1 = new Node("zebra", new Node("hippo",

new Node("gorilla", new Node("elephant"))));

System.out.println(" **********Linked Nodes Method Test");

System.out.println("Sorted numbers 1 sorted? " + isSortedAscending(sortedChain1));

System.out.println("Sorted numbers 2 sorted? " + isSortedAscending(sortedChain2));

System.out.println("Sorted numbers 3 sorted? " + isSortedAscending(sortedChain3));

System.out.println("Sorted numbers 4 sorted? " + isSortedAscending(sortedChain4));

System.out.println("Sorted numbers 5 sorted? " + isSortedAscending(sortedChain5));

System.out.println("Unsorted numbers 1 sorted? " + isSortedAscending(unsortedChain1));

System.out.println("Unsorted numbers 2 sorted? " + isSortedAscending(unsortedChain2));

System.out.println("Unsorted numbers 3 sorted? " + isSortedAscending(unsortedChain3));

System.out.println("Sorted words 1 sorted? " + isSortedAscending(sortedWordChain1));

System.out.println("Unsorted words 1 sorted? " + isSortedAscending(unSortedWordChain1));

}

public static boolean isSortedAscending(Node firstInChain)

{

boolean found = true;

Node currentNode = firstInChain;

while(currentNode!=null && found)

{

if(currentNode.data.compareTo(currentNode.next.data) > 0 )

found = false;

currentNode = currentNode.next;

}

return found;

}

}

But it doesn't work.

I have an error message:

Exception in thread "main" java.lang.NullPointerException at HomeworkW08Driver.isSortedAscending(HomeworkW08Driver.java:101) at HomeworkW08Driver.main(HomeworkW08Driver.java:63)

Thanks

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!