打印一个数组的所有子集

题目:给定一个数组arr[]={1,2,3} 打印此数组的所有子集
我绘制了一颗子集树,方便于找出所有子集及对程序进行理解,将子集树中节点的左子树设为0,表示可以打印。右子树设为1,表示不打印。
打印一个数组的所有子集_第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);
        }
    }

}

你可能感兴趣的:(打印一个数组的所有子集)