Answered step by step
Verified Expert Solution
Link Copied!

Question

00
1 Approved Answer

In this assignment you are to utilize the Node data structure provided on Blackboard. In this assignmet you are to write a main program that

In this assignment you are to utilize the Node data structure provided on Blackboard. In this assignmet you are to write a main program that implements two methods and a main method as their driver. So, only main and two methods with it. Note: You may not use any of the LinkedList class provided on Blackboard, you may use the methods in it as a guide (you should actually look at them) but you cannot use any of the methods in your solution. Also, you may not modify the Node class in any way, we will assume that you just used it. You should not submit it. You only need to submit only your drive program. Implementation Details: ^^^^^^^^^^^^^^^^^^^^^^^ The following are the implementation details of this assignment, you must adhere to all of the reauirements. Method 1: ^^^^^^^^^ Parameters and return type: Takes as parameters an array of integers, the size of the array of integer (.length is acceptable also) and it should return a Node that is supposed to represent the head of a linked list. Note: You may also choose to make it a void method and pass the head of the linked list as a parameter, if that's easier for you. You have the choice here. Method Logic: The method is supposed to create a linked list represented by its head and populate it with the numbers stored in the array by placing the even numbers in the array first, followed by the odd numbers. You may not change the order of the numbers inside of the array, the order must remain the same as it was read from input. Example: Assume the array is: [0,1, 4, 6, 7, 9, 2, 10, 11, 14, 13, 19, 20] The linked list should be 20->14->10->2->6->4->0->1->7->9->11-13->19 So return back from the function the head of this linked list. Method 2: ^^^^^^^^^ Parmeters and return type: This method shoould take as a parameter the linked list generated in method 1 represented by its head. Method logic: The method should start by reading in one integer from standard input, and based on that integer, it needs to shift the linked list by that many positions. Keep in mind that you need to do the necessary error checking, the shifting can be between 0 and the size of the linked list - 1. Example: Assume the given linked list is: 20->14->10->2->6->4->0->1->7->9->11-13->19 You read in an integer: You input the number 3. The linked list should look like: 2->6->4->0->1->7->9->11-13->19->20->14->10 If you read in a 6: The linked list should look like: 0->1->7->9->11-13->19->20->14->10->2->6->4 If you read in a 13 The method should print an error asking you to enter a number between 0-12. The main program: ^^^^^^^^^^^^^^^^^ 1. Your program should run and ask the user to input the size of an array of integers. Once that's done, the program should read these integers and store them into an array. 2. Once the array has been populated and its size is known, then you need to call method 1 defined above. The result should be a head pointer of a linked list. At this point you declare a cursor method and go through the linked list and print it to the screen. Based on the above example: 20 14 10 2 6 4 0 1 7 9 11 13 19. 3. Call method 2 4. Print the linked list resulting from calling method 2. The rotated linked list. Here's the shell of my code

public static void main(String [] args) { Node head; head = buildList(); shiftList(head); } public static Node buldList() { // declare your scanner in // declare the number of integers you're going to read (n) // declare your array a Node head, cursor; for(i = 0; i < n; i++ ){ a[i] = in.nextInt(); // if i == 0 that means that the head and the cursor are both // pointing to null and there exists no nodes in the linked list // therefore we need to create our first node first, and have the // head and the cursor both point to it. // After that i will not be equal to zero and we can then start executing // the else part of this if statement by checking if the number is odd // or even. if( i == 0){ head = new Node(a[i], null); // insert the code that makes the cursor point to the head } else { if(a[i] % 2 == 1){ // if the number is odd cursor.setNext(new Node(a[i], null)); // Insert the code that moves the cursor over. }else{ // the number is even, so we will insert at the head and move the head // to point to the newly inserted node. // Use a code that is highly similar to the listHeadInsert // method in the linked list class. Do not call the listHeadInsert // method though, but you can use its logic } } } return head; } public static void shiftList(Node head) { // in this code you will need to have some temporary variables starting // Ask the user to enter a number by which to shift // make the necessary error checking to make sure that the shift is valid // call this number x. tmp = head; cursor = head; // now you moved tmp to the location where head needs to be for(i = 0; i < x - 1; i++) tmp = tmp.getNext(); // at this point find the end of the list while(cursor.getNext() != null) cursor = cursor.getNext(); // make the last node point to the old head cursor.setNext(head); // Now write the code that moves the head over and set the Next of the node // before the new location of the head to null. }

public class Node { private T value; // this is the data value private Node next; // this is pointing to the next node // the node constructor public Node (T v, Node n) { value = v; next = n; } // getters and setters for the node's value and next pointer public T getValue() {return value;} public Node getNext() {return next;} public void setValue(T v){value = v;} public void setNext(Node n){next = n;} }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions