zoukankan      html  css  js  c++  java
  • List All Of The Subsets

    Problem description:Please list all of the subsets of a known set including the empty set.

    My idea: one thinking of the algorithm backtracking is to generate a tree of subset and the condition of an element in the super set for a subset is either on or off.Hence we can specialize the subset tree to a binary tree and we print once when we reach the bottom of the tree each time.It is also easy to write a program.
     
     1 #include <stdio.h>
     2  #define MAX 1000
     3  
     4  int n=3;  //the number of the set elements
     5  int set[MAX]={1,2,3};
     6  int count=0;//the number of the subset.
     7  
     8  void DFS(int level);
     9  void print_set();
    10  
    11  int main()
    12  {
    13      DFS(0);
    14      return 0;
    15  }
    16  
    17  void DFS(int level)
    18  {
    19      if(level==n)
    20      {
    21          print_set();
    22          return ;
    23      }
    24      int save=set[level];
    25      set[level]=0;
    26      int index=0;
    27      for(index=0;index<2;index++)
    28      {
    29          DFS(level+1);
    30          set[level]=save;
    31      }
    32  
    33  }
    34  
    35  void print_set()
    36  {
    37      int index;
    38      count++;
    39      printf("%d: {",count);
    40      for(index=0;index<n;index++)
    41      {
    42          if(set[index]!=0) 
    43              printf("%d ",set[index]);
    44      }
    45      printf("}\n");
    46  }
  • 相关阅读:
    JAVA SE 基础复习-虚拟机
    不错的博客
    如何分析问题
    由Contains开始的
    相关有用链接
    C++语法一二
    关于论文的些许想法
    C++中一些容易迷惑的语法点总结
    android中各种组件的生命周期问题
    android开源框架thinkinandroid相关研究
  • 原文地址:https://www.cnblogs.com/NeilHappy/p/2843319.html
Copyright © 2011-2022 走看看