打印一个数组的所有子集
题目:给定一个数组arr[]={1,2,3} 打印此数组的所有子集 我绘制了一颗子集树,方便于找出所有子集及对程序进行理解,将子集树中节点的左子树设为0,表示可以打印。右子树设为1,表示不打印。
package childtree;
/**
*打印1,2,3的所有子集
*/
public class ChildTree01 {
static int[] brr = new int[3];
public static void main(String[] args) {
int[] arr =new int[]{
1,2,3};
backstrace(arr,0);
}
public static void backstrace(int [] arr,int i){
if(i==arr.length){
for (int j = 0; j < brr.length; j++) {
if(brr[j]==1)
System.out.print(arr[j]+" ");
}
System.out.println();
}else{
brr[i]=1;
backstrace(arr,i+1);
brr[i]=0;
backstrace(arr,i+1);
}
}
}
