The Bron–Kerbosch algorithm is a method for listing all maximal cliques of a graph. I recently implemented the algorithm successfully just for fun. The downside is that the algorithm is recursive, and thus can only be ran on tiny graphs until the stack overflows.
It should be possible to make the algorithm purely iterative. Consider the basic version (no pivoting) on Wikipedia. How would the iterative version of the algorithm look like in pseudocode? Is there a description somewhere?
I am imagining a stack data structure to simulate the recursion. I should also have a loop in which I test for emptiness of P and X, but I am not seeing a complete answer.