I recently made a post about two generic delegates introduced in version 3.5 of the .NET Framework. As an example, I mentioned an implementation of the A* search algorithm. For those not familiar with the algorithm, A* (pronounce A Star) is one, if not the, most popular search algorithms in artificial intelligence. Generally, the algorithm visits nodes in a graph, taking certain aspects into consideration, until it finds a node that meets a specific goal condition or until there are no more nodes left. The algorithm is, usually, optimal and complete, which means it will always find the least expensive solution. This, however, can change depending on certain factors I will get into later on in the post.