コード例 #1
0
ファイル: frqueue.C プロジェクト: ralfbrown/framepac
bool FrQueue::remove(const FrObject *item)
{
   FrList *prev = 0 ;
   FrList *curr = qhead ;

   while (curr && curr->first() != item)
      {
      prev = curr ;
      curr = curr->rest() ;
      }
   if (curr)
      {
      if (prev)
	 prev->replacd(curr->rest()) ;
      else
	 qhead = curr->rest() ;
      curr->replaca(0) ;
      curr->replacd(0) ;
      delete curr ;
      qlength-- ;
      return true ;
      }
   else
      return false ;
}
コード例 #2
0
ファイル: frqueue.C プロジェクト: ralfbrown/framepac
void FrQueue::addFront(const FrObject *item, bool do_copy)
{
   FrList *newitem = new FrList ;
   newitem->replaca((item && do_copy) ? item->deepcopy() : item) ;
   newitem->replacd(qhead) ;
   if (qhead)
      qhead = newitem ;
   else
      qhead = qtail = newitem ;
   qlength++ ;
}