dfs应用

1、输入一个数字n,输出1-n的全排列

//dfs应用--全排列
#include <bits/stdc++.h>
using namespace std;
int n,path[1000],vis[1000];
void dfs(int c)
{
    if(n==c){
        for(int i=0;i<n;i++){
            cout<<path[i]<<' ';
        }
        cout<<endl;
    }
    for(int i=1;i<=n;i++){
        if(vis[i]==0){
            vis[i]=1;
            path[c]=i;
            dfs(c+1);
            vis[i]=0;
        }
    }
}
int main()
{
    cin>>n;
    memset(vis, 0, sizeof(vis));
    memset(path, 0, sizeof(path));
    dfs(0);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_47696370/article/details/129636765
dfs