A recursive algorithm works by calling itself, each time with different data. So, to simulate that without actual recursion, you would need to track the changing data on some kind of stack. This would allow the data to be processed in a last-in-first-out order, which is how recursion works.