Stacks are of finite size. When running DFS, you create one stack frame
for each vertex you visit. It then follows that if you create enough
stack frames, you will overflow the stack.
Try declaring less on the stack, or manually managing the stack instead
of using recursion.
My implementation manually manages the stack. Christie's implementation
uses BFS. Both are equally correct.
-Robert