Source of 12.23.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 (isEmpty())
  9:       {
 10:          firstNode = newNode;
 11:          lastNode = newNode;
 12:       }
 13:       else if (givenPosition == 1)
 14:       {
 15:          newNode.setNextNode(firstNode);
 16:          firstNode = newNode;
 17:       }
 18:       else if (givenPosition == numberOfEntries + 1)
 19:       {
 20:          lastNode.setNextNode(newNode);
 21:          lastNode = newNode;
 22:       }
 23:       else
 24:       {
 25:          Node nodeBefore = getNodeAt(givenPosition - 1);
 26:          Node nodeAfter = nodeBefore.getNextNode();
 27:          newNode.setNextNode(nodeAfter);
 28:          nodeBefore.setNextNode(newNode);
 29:       } // end if
 30:       numberOfEntries++;
 31:    }
 32:    else
 33:       throw new IndexOutOfBoundsException(
 34:                 "Illegal position given to add operation.");
 35: } // end add