92. 递归实现指数型枚举
DFS
DFS(node):
if node is null:
return
// 前序遍历:先访问当前节点
visit(node)
// 递归遍历所有子节点
for child in node.children:
DFS(child)
#include <bits/stdc++.h>
using namespace std;
bool f[20];
int n;
void bfs(int k)// 第k个数
{
if (k > n)// 截至条件
{
for (int i = 1; i <= n; i ++ )
{
if (f[i]) cout << i << " ";
}
cout << endl;
return;
}
f[k] = false;// 子节点1,同时经行访问
bfs(k + 1);
f[k] = true;// 子节点2,同时经行访问
bfs(k + 1);
}
int main()
{
cin >> n;
bfs(1);
return 0;
}

浙公网安备 33010602011771号