递归求子集

简介:
#include <iostream>

using namespace std;

//作为全局变量
char set[] = {'a', 'b', 'c', 'd'};
bool isVisited[4] = {false};
int size = 4;


void getAllSubset(int depth)
{
    if (depth == size)//如果遍历完全集,打印出所有被标记为true的元素
    {
        for (int i = 0; i < size; i++)
        {
            if (isVisited[i])
                cout << set[i];
        }
        cout << endl;
    }
    else
    {
        isVisited[depth] = true;
        getAllSubset(depth+1);//寻找下一个元素
        isVisited[depth] = false;
        getAllSubset(depth+1);
    }
}

int main()
{

    getAllSubset(0);

    cin.get();
    return 0;
}

目录
相关文章
|
3月前
|
Java
leetcode-78:子集
leetcode-78:子集
21 1
leetcode-78:子集
|
4月前
|
存储 算法 程序员
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
40 0
|
3月前
|
Java
leetcode-90:子集 II
leetcode-90:子集 II
25 1
|
8月前
|
存储 算法
算法训练Day18|● 513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
算法训练Day18|● 513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
|
8月前
|
算法
无重复子集问题求解
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
45 0
|
算法 程序员
算法之递归
算法之递归
82 0
算法之递归
|
算法 C++
经典算法详解(11)递归查找数组中的最大值
题目:编写一个程序,用递归的方法实现查找数组中的最大值。 C++实现 1 #include 2 3 using namespace std; 4 //第一种方法是常规方法,不是使用递归,首先将第一个元素的值赋值给max,然后遍历数组, 5 //当遇到超高max的值时将其赋值给max,最...
1835 0