首页 > 其他 > 详细

21.03.06 递归搜索树(恢复现场)

时间:2021-03-06 00:20:23      阅读:40      评论:0      收藏:0      [点我收藏+]
#include <iostream>

using namespace std;

const int N = 10;

int n;

void dfs(int u, int nums[], bool st[]) {
    if (u > n) {
        for (int i = 1; i <= n; i ++ ) cout << nums[i] <<  ;
        cout << endl;
    }
    else {
        for (int i = 1; i <= n; i ++ ) {
            if (!st[i]) {
                st[i] = true;
                nums[u] = i;
                dfs(u + 1, nums, st);
                st[i] = false; // 恢复现场
            }
        }
    } 
}

int main() {
    cin >> n;
    
    int nums[N];
    bool st[N] = {0};
    
    dfs(1, nums, st);
    
    return 0;
    
}

技术分享图片

解释恢复现场

技术分享图片

21.03.06 递归搜索树(恢复现场)

原文:https://www.cnblogs.com/Shinki/p/14489188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!