Source of 12.11.java


  1: // @author Frank M. Carrano, Timothy M. Henry
  2: // @version 5.0
  3: public void add(int givenPosition, T newEntry)
  4: {
  5:    if ((givenPosition >= 1) && (givenPosition <= numberOfEntries + 1))
  6:    {
  7:       Node newNode = new Node(newEntry);
  8:       if (givenPosition == 1)                // Case 1
  9:       {
 10:          newNode.setNextNode(firstNode);
 11:          firstNode = newNode;
 12:       }
 13:       else                                                                                 // Case 2: list is not empty
 14:       {                                      // and givenPosition > 1
 15:          Node nodeBefore = getNodeAt(givenPosition - 1);
 16:          Node nodeAfter = nodeBefore.getNextNode();
 17:          newNode.setNextNode(nodeAfter);
 18:          nodeBefore.setNextNode(newNode);
 19:       } // end if
 20:       numberOfEntries++;
 21:    }
 22:    else
 23:       throw new IndexOutOfBoundsException(
 24:                 "Illegal position given to add operation.");
 25: } // end add