모든 하위 집합 나열-------2013년 1월 3일
6146 단어 열거하다
나의 사고방식: 거슬러 올라가는 방법의 한 가지 사고방식은 하나의 자집나무를 생성하는 것이다. 하나의 집합 중의 원소는 자집중에 존재하거나 존재하지 않기 때문에 이것은 또 두 갈래 나무로 특수화되었다.두 갈래 나무의 밑에 도착할 때마다 한 번 인쇄한다.다음과 같은 코드를 쉽게 작성할 수 있습니다.
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("}
");
46 }
만약 당신이 나의 문장이 당신에게 도움이 된다고 생각한다면, 추천해 주십시오. 매우 감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pandas의 DataFrame 스왑 열 순서 방법 구현1. DataFrame 열 레이블 가져오기 ['ps_state-stopped', 'ps_state-running', 'ps_state-blocked', 'ps_state-paging', 'ps_state-sleepi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.