Question

In: Computer Science

In this assignment you are to utilize the Node data structure provided on Blackboard. In this...

In this assignment you are to utilize the Node data structure provided on Blackboard.
In this assignment 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.

Implementation Details:
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:
^^^^^^^^^
Parameters and return type:
This method should 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.

- method 1 hints
The following should happen after reading an array a of size n Keep in mind that this is closer to pseudocode, so you need to fix it to compile, it's pretty close to what you need to do, but you need to adjust the code to work with the Node data structure. I am talking about private vs. public data members and the use of getters and setters.
Also the following is assuming a dummy node.
Node head = new Node(); Node cursor = head;
for(i = 0; i < n; i++ ) {
int x = a[i]; // this is the number we're working with.
if(x % 2 == 0) // the number is even.
{
// this will insert the even numbers in the reverse order of how they are in the array.
head.next = new Node(x, head.next);
}else{
cursor.next = new Node(x, null);
cursor = cursor.next
}
}
return head; // this will return the entire list represented by its head

- Method 2 hints
public static void rotateList(Node head){

// read in the number n to rotate by
// then do the rotation code by manipulating the head and where it's

// pointing and where the new end of the list is now.
}

Solutions

Expert Solution

            // 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<Integer>(a[i], null);
                // insert the code that makes the cursor point to the head
                cursor = head;
            } else {
                if(a[i] % 2 == 1){   // if the number is odd

                    cursor.setNext(new Node<Integer>(a[i], null));
                    // Insert the code that moves the cursor over.
                    cursor = cursor.getNext();
                }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
                    head = new Node<Integer>(a[i], head);
                }
            }
        }

        return head;
    }


    public static Node<Integer> shiftList(Node<Integer> 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.
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        int i;

        Node<Integer> tmp = head;
        Node<Integer> cursor = head;

        // now you moved tmp to the location where head needs to be
        for(i = 0; i < x - 1; i++) {
            tmp = tmp.getNext();
            if(tmp == null) {
                System.out.println("Invalid Shift entered.");
                return head;
            }
        }

        // 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.
        head = tmp.getNext();
        tmp.setNext(null);

        return head;
    }

}

class Node<T>
{

    private T value;            // this is the data value
    private Node<T> next; // this is pointing to the next node


    // the node constructor
    public Node (T v, Node<T> n)
        {
            value = v;
            next = n;
        }

    // getters and setters for the node's value and next pointer
    public T getValue() {return value;}
    public Node<T> getNext() {return next;}
    public void setValue(T v){value = v;}
    public void setNext(Node<T> n){next = n;}

}

note: plzzz don't give dislike.....plzzz comment if you have any problem i will try to solve your problem.....plzzz give thumbs up i am in need....


Related Solutions

In this assignment you are to utilize the Node data structure provided on Blackboard. In this...
In this assignment you are to utilize the Node data structure provided on Blackboard. In this assignment 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. Implementation Details: 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...
For this assignment, your group will utilize the preliminary data collected in the Topic 2 assignment....
For this assignment, your group will utilize the preliminary data collected in the Topic 2 assignment. Considering the specific requirements of your scenario, complete the following steps using Excel. The accuracy of formulas and calculations will be assessed. Select the appropriate discrete probability distribution. If using a binomial distribution, use the constant probability from the collected data and assume a fixed number of events of 20. If using a Poisson distribution, use the applicable mean from the collected data. Identify...
Using the financial statement provided (an Excel spreadsheet with the data is available on Blackboard), prepare...
Using the financial statement provided (an Excel spreadsheet with the data is available on Blackboard), prepare a complete Statement of Cash Flows that shows both the direct method and the indirect method for summarizing cash flow from operating activities. Note to complete the assignment you will need to calculate items such as dividends paid (Retained Earnings & AOCI2019 – Net income2019 – Retained Earnings & AOCI2018) and capital expenditures (Net PP&E2018 – Book Value of PP&E Sold2019 – Depreciation Expense2019...
JAVA DATA STRUCTURE (Linked Lists/Queue) public class Node {    int value;    Node nextNode;   ...
JAVA DATA STRUCTURE (Linked Lists/Queue) public class Node {    int value;    Node nextNode;    Node(int v, Node n){        value = v;        nextNode = n;    }    Node (int v){        this(v,null);    } } public class Stack {    protected Node top;    Stack(){        top = null;    }    boolean isEmpty(){        return( top == null);    }    void push(int v){        Node tempPointer;       ...
What is a linked data structure? What is a node? What are the benefits of linked...
What is a linked data structure? What is a node? What are the benefits of linked structure? What are the drawbacks of linked structure? What are the differences between singly linked and doubly linked structures? Give examples of when a linked structure could be used.
Assignment #2 (JAVA) In assignment 1 you had used the data structure called Stack to evaluate...
Assignment #2 (JAVA) In assignment 1 you had used the data structure called Stack to evaluate arithmetic expressions by first converting the given infixed expressions to postfixed expressions, and then evaluated the post fixed expression. Repeat the exercise for this assignment (assignment 2) by using the data structure called Binary Trees. Your output must display the original expression, the postfixed expression representing the Binary tree, and the evaluated result. Please bear in mind that a given expression could result in...
I've provided a Node class that implements a node of a simple singly-linked list (with .value...
I've provided a Node class that implements a node of a simple singly-linked list (with .value and .next fields), and an empty LinkedList class. Your task is to implement LinkedList.sort(l), where given the node l as the head of a singly-linked list, LinkedList.sort(l) sorts the nodes in the list into ascending order according to the values in the .value field of each node. Your implementation should do an in-place update of the list. It is ok to use a simple...
c++ program You are to use a Heap data structure for this assignment I currently work...
c++ program You are to use a Heap data structure for this assignment I currently work for an investment/insurance company and I’m looking for clients to call, ones with funds.  I need to have a schedule that shows the list of customers to call and the order to be called.  The list of customers names and phone numbers are in the file ‘NamesAndPhoneV2.txt’.  A second file contains a net worth value for each client.  The files are separated for security and protection reasons, but...
If x is a node in a hierarchically organized tree structure, then it is ________________________________ for...
If x is a node in a hierarchically organized tree structure, then it is ________________________________ for all nodes in the tree structure higher than it.
Week 8 Assignment 4 Submission If you are using the Blackboard Mobile Learn iOS App, please...
Week 8 Assignment 4 Submission If you are using the Blackboard Mobile Learn iOS App, please click "View in Browser”. Click the link above to submit your assignment. Students, please view the "Submit a Clickable Rubric Assignment" in the Student Center. Instructors, training on how to grade is within the Instructor Center. Assignment 4: Win the Contract Due Week 8 and worth 120 points Imagine your small business produces tiny remote control aircraft capable of long sustained flights. You are...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT