将negativeCntr指定为链接列表中的负值数

时间:2017-11-21 18:33:52

标签: java linked-list negative-number

我在分配负计数器(negativeCnter)和链表中的负值数时遇到问题。

老实说,我不确定如何处理整件事。

我需要输出读取

否定数量:6(或任何可能的) 而不是我的当前 否定数量:0

谢谢。

// ===== 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 =====

2 个答案:

答案 0 :(得分:0)

解决方案是,

negativeCntr++;

答案 1 :(得分:0)

这应该由 if(currObj->GetDataVal() < 0){ negativeCntr++; }

完成