19.2.1: Linked list negative values counting. Assign negativeCntr with the numbe
ID: 3859439 • Letter: 1
Question
19.2.1: Linked list negative values counting.
Assign negativeCntr with the number of negative values in the linked list.
ZYBOOK CODE
// ===== Code from file IntNode.java =====
public class IntNode {
private int dataVal;
private IntNode nextNodePtr;
public IntNode(int dataInit, IntNode nextLoc) {
this.dataVal = dataInit;
this.nextNodePtr = nextLoc;
}
public IntNode(int dataInit) {
this.dataVal = dataInit;
this.nextNodePtr = null;
}
/* Insert node after this node.
* Before: this -- next
* After: this -- node -- next
*/
public void insertAfter(IntNode nodePtr) {
IntNode tmpNext;
tmpNext = this.nextNodePtr; // Remember next
this.nextNodePtr = nodePtr; // this -- node -- ?
nodePtr.nextNodePtr = tmpNext; // this -- node -- next
return;
}
// Grab location pointed by nextNodePtr
public IntNode getNext() {
return this.nextNodePtr;
}
public int getDataVal() {
return this.dataVal;
}
}
// ===== end =====
// ===== Code from file CustomLinkedList.java =====
import java.util.Random;
public class CustomLinkedList {
public static void main (String [] args) {
Random randGen = new Random();
IntNode headObj; // Create intNode objects
IntNode currObj;
IntNode lastObj;
int i = 0; // Loop index
int negativeCntr = 0;
headObj = new IntNode(-1); // Front of nodes list
lastObj = headObj;
for (i = 0; i < 10; ++i) { // Append 10 rand nums
int rand = randGen.nextInt(21) - 10;
currObj = new IntNode(rand);
lastObj.insertAfter(currObj); // Append curr
lastObj = currObj; // Curr is the new last item
}
currObj = headObj; // Print the list
while (currObj != null) {
System.out.print(currObj.getDataVal() + ", ");
currObj = currObj.getNext();
}
System.out.println("");
currObj = headObj; // Count number of negative numbers
while (currObj != null) {
/* Your solution goes here */
currObj = currObj.getNext();
}
System.out.println("Number of negatives: " + negativeCntr);
return;
}
}
// ===== end =====
Assign negativeCntr with the number of negative values in the linked list.
Explanation / Answer
Below is your code. I have highlighted(BOLD) the code which I added.
IntNode.java
//===== Code from file IntNode.java =====
public class IntNode {
private int dataVal;
private IntNode nextNodePtr;
public IntNode(int dataInit, IntNode nextLoc) {
this.dataVal = dataInit;
this.nextNodePtr = nextLoc;
}
public IntNode(int dataInit) {
this.dataVal = dataInit;
this.nextNodePtr = null;
}
/*
* Insert node after this node. Before: this -- next After: this -- node --
* next
*/
public void insertAfter(IntNode nodePtr) {
IntNode tmpNext;
tmpNext = this.nextNodePtr; // Remember next
this.nextNodePtr = nodePtr; // this -- node -- ?
nodePtr.nextNodePtr = tmpNext; // this -- node -- next
return;
}
// Grab location pointed by nextNodePtr
public IntNode getNext() {
return this.nextNodePtr;
}
public int getDataVal() {
return this.dataVal;
}
}
// ===== end =====
CustomLinkedList.java
//===== Code from file CustomLinkedList.java =====
import java.util.Random;
public class CustomLinkedList {
public static void main(String[] args) {
Random randGen = new Random();
IntNode headObj; // Create intNode objects
IntNode currObj;
IntNode lastObj;
int i = 0; // Loop index
int negativeCntr = 0;
headObj = new IntNode(-1); // Front of nodes list
lastObj = headObj;
for (i = 0; i < 10; ++i) { // Append 10 rand nums
int rand = randGen.nextInt(21) - 10;
currObj = new IntNode(rand);
lastObj.insertAfter(currObj); // Append curr
lastObj = currObj; // Curr is the new last item
}
currObj = headObj; // Print the list
while (currObj != null) {
System.out.print(currObj.getDataVal() + ", ");
currObj = currObj.getNext();
}
System.out.println("");
currObj = headObj; // Count number of negative numbers
while (currObj != null) {
if(currObj.getDataVal() < 0) {
negativeCntr++;
}
currObj = currObj.getNext();
}
System.out.println("Number of negatives: " + negativeCntr);
return;
}
}
// ===== end =====
Sample Output: -
-1, 1, 9, 1, 8, -3, -1, -6, -1, -2, 7,
Number of negatives: 6
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.