Source of 14.23.java


  1: public void add(int newPosition, T newEntry)
  2: {
  3:    if ((newPosition >= 1) && (newPosition <= numberOfEntries + 1))
  4:    {
  5:       Node newNode = new Node(newEntry);
  6:       if (isEmpty())
  7:       {
  8:          firstNode = newNode;
  9:          lastNode = newNode;
 10:       }
 11:       else if (newPosition == 1)
 12:       {
 13:          newNode.setNextNode(firstNode);
 14:          firstNode = newNode;
 15:       }
 16:       else if (newPosition == numberOfEntries + 1)
 17:       {
 18:          lastNode.setNextNode(newNode);
 19:          lastNode = newNode;
 20:       }
 21:       else
 22:       {
 23:          Node nodeBefore = getNodeAt(newPosition - 1);
 24:          Node nodeAfter = nodeBefore.getNextNode();
 25:          newNode.setNextNode(nodeAfter);
 26:          nodeBefore.setNextNode(newNode);
 27:       } // end if
 28:       numberOfEntries++;
 29:    }
 30:    else
 31:       throw new IndexOutOfBoundsException(
 32:                 "Illegal position given to add operation.");
 33: } // end add
 34: // Version 4.0