void func(int a, bool arr[]) {
arr[a] = true;
// print
for(list<int>::iterator i = global_list[a].begin(); i != global_list[a].end(); ++i)
if(!arr[*i])
func(*i, arr);
}
Как я понимаю, нужно это перевести в стековую реализацию, но я не понимаю как.
Дополнения: это был псевдокод, вот полный код http://pastebin.com/fa3kyPU1