用遞迴方法求集合的子集

2021-05-25 00:36:39 字數 750 閱讀 8186

用遞迴的方法求乙個集合的子集。
實現**如下:
#include   #include   #include   #define   n   20   

int used[n];

void output(char *str);

int diver(char *str, int len, int index);

int main( void )

input[strlen(input) - 1] = '/0';

len = strlen(input);

diver(input, len,0);

return 0;

}

int diver(char *str, int len, int index)

return 0;

}

void output(char *str)

");

printf("/n");

}

原理如下圖所示:
以123為例,求他的子集。
實際上轉化為二叉樹結構,每乙個節點都有兩種狀態,1和0。
1表示該數有效可以輸出,否則無效,不輸出。這個二叉樹的最底層葉子節點就是求出的所有子集的結果。

求集合的子集

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 可以用位運算來求子集。用一串長度為陣列大小的二進位制串,對應的位表示有無取到那個位置的數。由於求全部子集,所...

求集合的所有子集

現有乙個包含n個元素的集合s,求集合s的所有子集?例如 集合s包含三個元素,則它的所有子集為 空集 和。這裡先用位操作的思路來求解,具體方法 用2進製bit位來標記集合中的某個元素是否被選中,1代表選中,0代表未選中。例如集合的所有子集可如下表示 空集 0 0 0 0 0 1 0 1 0 1 0 0...

求集合的所有子集 續

首先得利用輔助陣列index來記錄所有選中元素的下標,對於輔助陣列index需滿足以下兩個條件 1 index i 1 index i 即後乙個元素的下標必須大於前乙個元素的下標 2 index i i m n 從m個元素中選取n個元素的子集,i表示子集中的第i 1個元素 假如現有一集合set,求集...