A BluePaint algorithm is one that marks off each record as it processes it. In most cases, a cleanup routine removes the BluePaint afterwords. This is a good case for using try/finally.
I usually note which records have been processed in a separate list. This requires no modification to the visited nodes, allows multiple concurrent visitors (assuming they coordinate otherwise on changes), and eliminates the need for a cleanup routine. Is such an approach an alternative way to implement BluePaint or is it a different algorithm altogether? -- CraigPutnam