递归程序的执行流程
Execution flow of recursion program
下面是生成排列的函数。
我需要知道递归程序的代码执行流程,search()
行后我感到困惑,我不明白search()
执行后的两行,它应该在最后或每次执行。有人可以一步一步解释程序的执行流程吗?
vector<int> permutation;
int n = 3;
bool chosen[n + 1];
void search() {
if (permutation.size() == n) {
// process permutation(print permutation vector)
} else {
for (int i = 1; i <= n; i++) {
if (chosen[i]) continue;
chosen[i] = true;
permutation.push_back(i);
search();
chosen[i] = false;
permutation.pop_back();
}
}
}
在递归搜索函数中执行,直到排列大小等于 3,在返回时布尔值变为假并返回值以供将来使用。 这里是递归树--递归树
相关文章:
- 在C/C++中执行"_dl_init"(程序初始化)是单线程的吗
- 我在执行任何程序时被拒绝在 devcpp 中访问
- C++ |为什么执行此程序后我会得到奇怪的字符?
- 如何执行此程序,将键入的数字显示为数字值的多次
- dll 外壳扩展如何知道要执行的程序位置?
- 在 Ubuntu 上运行的节点服务器需要执行 C# 应用程序 - 如何执行
- 无法以正确的方式执行其他程序
- 在执行任何程序代码之前,通过静态 .lib 链接到 dll 的程序会发生什么情况
- 使用可执行应用程序创建和"Scheduling" pthreads
- 在窗口中执行 Linux c++ 程序
- 在Visual C 中,同时调用函数并执行该程序的其余部分
- 当我尝试执行任何程序时,Qt都会崩溃
- cocos2d-X 中的执行流
- 执行 CUDA 程序时分段错误
- 如何在gnome终端中执行CLion程序
- 在solaris中运行一个可执行的c++程序
- 是否可以从外部进程注入和执行应用程序
- libGL 在执行 OpenGL 程序时出错
- Cpp 中的插件 - 执行外部程序函数
- 系统()调用批处理可执行流文件使程序在windows上重置