12.4.    C++ 455

//  12.7.   validTrip() 
//               directTripO

bool trip_announcement::validTrip(list<trip_announcement>::

iterator I, string TempOrigin)
{

if(I == UniverseOfDiscourse.end()){
if(Candidates.empty()){
TruthValue = false;

return(false) ;

}
else{

trip_announcement Temp;

Temp = Candidates.top() ;

I = find(UniverseOfDiscourse.begin(),
UniverseOfDiscourse.end(),Temp) ;

UniverseOfDiscourse.erase(I) ;

Candidates.pop() ;

I = UniverseOfDiscourse.begin();

if(I != UniverseOfDiscourse.end()){
TempOrigin = Origin;

}
else{

TruthValue = false;

return(false) ;

}
}
}
if((*I).origin)) == TempOrigin &&

(*I).destinationf) == Destination)(
Candidates.push(* I) ;

TruthValue = true;

return(true) ;

}

if((*I).origin() == TempOrigin){
TempOrigin = (*I).destination();

Candidates.push(* I) ;

}
I++;

return(validTrip(I,TempOrigin)) ;

}

bool trip_announcement::directTrip(void)

(

list<trip_announcement>::iterator I;

I = find(UniverseOfDiscourse.begin(),

UniverseOfDiscourse.end(),*this) ;

if(I == UniverseOfDiscourse.end()){
TruthValue = false;

return(false) ;

}
TruthValue = true;

return(true) ;

}