rendered paste bodyvoid List::DeleteItem()
{
Node * tempPtr = 0;
if(pos == front)
{
front = front->next;
delete pos;
Reset();
}
else
{
tempPtr = front;
while(tempPtr != NULL)
{
if(tempPtr->next == pos)
{
tempPtr->next=pos->next;
delete pos;
Reset();
break;
}
else
{
tempPtr = tempPtr->next;
}
}
}
}
void List::InsertInOrder(Node &v)
{
if(front == 0)
{
AddAtFront(v);
return;
}
else
{
Node vv;
Node * oldPos = pos;
Reset();
while(!EndOfList())
{
GetNext(vv);
if(v.CompareTo(vv) <= 0)
{
// we found where it goes
InsertBefore(v);
// cout << " b " << v.data << " ";
pos = oldPos;
return;
}
}
// it is greater than all items in the list add at back
AddAtRear(v);
// cout << " r " << v.data << " ";
pos = oldPos;
}
}
void List::InsertBefore(Node &v)
{
if(front == 0 || pos == 0 || pos == front)
{
AddAtFront(v);
}
else
{
Node * temp = FindNode(front, pos);
if(temp == 0)
{
throw "bad return from FindNode in InsertBefore.";
}
Node * nPtr = new Node();
nPtr->data = v.data;
nPtr->data = pos;
temp->next = nPtr;
}
}
void List::Print()
{
Node * temp = FindNode(front, 0);
cout << "end value = " << temp->data << endl;
}