集合的全部子集

 

 假設集合A = {1,2,3},它的全部集合是 {{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}, {}}({}表示空集}spa

 

能夠這樣理解這張圖,從集合A的每一個元素自身分析,它只有兩種狀態,或是某個子集的元素,或是不屬於任何子集,因此求子集的過程就能夠當作對每一個元素進行「取捨」的過程。(n個元素有2的n次方個組合)blog

每一層左邊節點表示加入該層元素,右邊表示不加入。遞歸

第二層表示對第1個元素的處理,第i層表示對第(i-1)個元素的處理二叉樹

n個元素會有n層。遍歷

上圖中,根結點是初始狀態,葉子結點是終結狀態,該狀態下的8個葉子結點就表示集合A的8個子集。im

第i層(i=1,2,3…n)表示已對前面i-1層作了取捨,因此這裏能夠用遞歸了。img

整個過程其實就是對二叉樹的先序遍歷。


集合

相關文章
相關標籤/搜索