They are everywhere and very useful!
Im pretty sure that every recursive function can be written as an iterative one (i.e. looping), and vice-versa. I havent looked at your code, but Im pretty sure...