In: Computer Science
ADT SORTED LIST
Fill in the missing code in the following code segment.
void SortedType::PutItem(ItemType newItem)
{
NodePtr newNode; // pointer to node being inserted
NodePtr predLoc; // trailing pointer
NodePtr location; // traveling pointer
boolean moreToSearch;
location = listData;
predLoc = NULL;
moreToSearch = (location != NULL);
length++;
// Find insertion point
// Prepare node for insertion
// Insert node into list
}
Solution:
void SortedType::PutItem(ItemType newItem)
{
NodePtr newNode; // pointer to node being inserted
NodePtr predLoc; // trailing pointer
NodePtr location; // traveling pointer
boolean moreToSearch;
location = listData;
predLoc = NULL;
moreToSearch = (location != NULL);
// Find insertion point.
  while (moreToSearch)
  {
    switch(newItem.ComparedTo(location->info))
    {
      case GREATER: predLoc = location;
                   location = location->next;
                    moreToSearch = (location != NULL);
                    break;
      case LESS:    moreToSearch = false;
                    break;
    }
    
  }
// Prepare node for insertion newNode = new NodePtr; newNode->info = newItem;
// Insert node into list.
  if (predLoc == NULL)         // Insert as first
  {
    newNode->next = listData;
    listData = newNode;
  }
  else
  {
    newNode->next = location;
    predLoc->next = newNode;
  }
length++;
}
Please give thumbsup, if you like it. Thanks.