锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99re热这里只有精品视频,久久夜夜操妹子,大香伊人中文字幕精品http://www.aygfsteel.com/chinayuan/category/34282.htmlzh-cnMon, 01 Sep 2008 23:30:52 GMTMon, 01 Sep 2008 23:30:52 GMT60絎涘崱灝?dāng)涔樋U繍綆楃粨鏋滅殑杈撳嚭{n1,n2...}*{m1,m2,m3..}*{p1,p2,p3...}* http://www.aygfsteel.com/chinayuan/archive/2008/09/02/226246.htmlJosonJosonMon, 01 Sep 2008 23:15:00 GMThttp://www.aygfsteel.com/chinayuan/archive/2008/09/02/226246.htmlhttp://www.aygfsteel.com/chinayuan/comments/226246.htmlhttp://www.aygfsteel.com/chinayuan/archive/2008/09/02/226246.html#Feedback0http://www.aygfsteel.com/chinayuan/comments/commentRss/226246.htmlhttp://www.aygfsteel.com/chinayuan/services/trackbacks/226246.html import java.util.Stack;

/**
 *
 * 瀹炵幇絎涘崱灝?dāng)涔樋U繍綆楃粨鏋滅殑杈撳嚭錛?br />  *  {n1,n2...}*{m1,m2,m3..}*{p1,p2,p3...}*....
 *  妯″瀷闈炲父綾諱技鏍?wèi)鐨勫厛鏍归亶鍘喗帡娉曟垨鍥剧殑娣卞害浼樺厛鎼滅储绠楁?鏈変簺鍕夊己),濡傛灉杈撳叆鏄?
 *     {n1,n2}*{m1,m2,m3}*{p1,p2,p3}
 *  閭d箞鎼滅儲妯″瀷鏄?
 *   root-->n1--->m1--->p1
 *                  --->p2
 *                  --->p3
 *            --->m2--->p1
 *                  --->p2
 *                  --->p3
 *            --->m3--->p1
 *                  --->p2
 *                  --->p3
 *   root-->n2--->m1--->p1
 *                  --->p2
 *                  --->p3
 *            --->m2--->p1
 *                  --->p2
 *                  --->p3
 *            --->m3--->p1
 *                  --->p2
 *                  --->p3
 * 浠庝笂闈㈠彲浠ョ湅鍒頒粠root鍑哄彂,璁塊棶鍑烘潵鐨勬ā鍨嬪氨鏄竴棰楁爲(wèi),root琛ㄧず絎竴嬈″眰嬈?
 * 姣忔浠庢爲(wèi)鐨勭浜屽眰鑺傜偣鍑哄彂鍒版爲(wèi)鐨勫彾瀛愯妭鐐圭粨鏉?鎵璁塊棶榪囩殑鑺傜偣璁板綍灝辨槸涓涓瑳鍗″皵涔樼Н榪愮畻緇撴灉.
 *
 */
public class DescartesMultiplication {
    
    public static void main(String[] args) {
       
        //initiate all of data:
        ArrayList list1= new ArrayList();
        ArrayList list2= new ArrayList();
        ArrayList list3= new ArrayList();
        ArrayList list4= new ArrayList();
        ArrayList root= new ArrayList();
       
//        list1.add("1");
//        list2.add("2");
//        list2.add("3");
//        list3.add("4");
//        list3.add("5");
//        list3.add("6");
//        list3.add("7");
//        list4.add("8");
//        list4.add("9");
       
        list1.add(1);
        list2.add(2);
        list2.add("1");
        list2.add(3.3);
        list3.add(4.4);
        list3.add(5);
        list3.add(6.5);
        list3.add(7.0);
        list4.add(8.2);
        list4.add(9.1);
        list4.add(new Object());
       
        root.add(list1);
        root.add(list2);
        root.add(list3);
        root.add(list4);
       
        //print all of data:
        for (int i = 0; i < root.size(); i++) {
            ArrayList list=new ArrayList();
            ArrayList item = (ArrayList) root.get(i);
            for (int j = 0; j < item.size(); j++) {
                Object element =  item.get(j);
                list.add(element);
            }
            printArrayList(list);
        }
       
        //begin to a depth-first search traverse from the root node.
        System.out.println("-----Below is a result of DescartesMultiplication-----");
       
        /**
         * 褰撴爲(wèi)鐨勬誨眰嬈℃暟>1鏃?娉ㄦ剰鏍?wèi)鐨勬誨眰嬈℃暟=root.size()-1.
         */
        if(root.size()>0){
            /**
             * 寰楀埌絎簩灞傛涓婃墍鏈夌殑鏍?wèi)鑺傜?
             */
            ArrayList nodeList = (ArrayList) root.get(0);
           
            /**
             * stack涓昏鐢ㄦ潵璁板綍錛屼竴嬈′粠鏍?wèi)鐨劷W簩灞傝妭鐐瑰埌鏍?wèi)鐨勫彾瀛愯妭鐐圭殑鏃跺欙紝鎵璁塊棶榪囩殑鎵鏈夎妭鐐?
             */
            Stack<String> stack= new Stack();
           
            /**
             * 浠庢爲(wèi)鐨勭浜屽眰嬈″紑濮嬪厛搴忛亶鍘嗘暣棰楁爲(wèi).
             */
            traverse(root,0,nodeList,stack);
        }
    }
   
    public static void printArrayList(ArrayList list){
       StringBuffer sb=new StringBuffer();
       sb.append("{");
       for (int i = 0; i < list.size(); i++) {
           sb.append(list.get(i).toString()+",");
       }
       sb.deleteCharAt(sb.length()-1);
       sb.append("}");
       System.out.println(sb.toString());
    }
   
    public static void printArrayList(Object[] array){
        StringBuffer sb=new StringBuffer();
        sb.append("{");
        for (int i = 0; i < array.length; i++) {
            sb.append(array[i].toString()+",");
        }
        sb.deleteCharAt(sb.length()-1);
        sb.append("}");
        System.out.println(sb.toString());
     }
   
    /**
     * 榪欎釜鏂規(guī)硶涓昏鐢ㄦ潵瀹炵幇榪欑for鐨勫祵濂楁ā鍨?
     * for()
     *    for()
     *       for()
     *         for()
     *           ...
     * @param root  琛ㄧず鏁撮鏍?br />      * @param treeDepthCounter  璁板綍絎嚑灞傛,0琛ㄧず絎竴灞傛,1琛ㄧず絎簩灞傛,...
     * @param nodeList  璁板綍鍦ㄨ鏍?wèi)鐨勫眰娆′笂鎵鏈夎妭鐐?灝辨瘮濡傜浜屽眰鐨勬墍鏈夎妭鐐規(guī)槸{n1,n2}
     * @param stack     涓昏鐢ㄦ潵璁板綍錛屼竴嬈′粠鏍?wèi)鐨劷W簩灞傝妭鐐瑰埌鏍?wèi)鐨勫彾瀛愯妭鐐圭殑鏃跺欙紝鎵璁塊棶榪囩殑鎵鏈夎妭鐐?
     */
    public static void traverse(ArrayList root,int treeDepthCounter,ArrayList nodeList, Stack stack){
        for (int i = 0; i < nodeList.size(); i++) {
            /**
             * 鍙栧緱涓涓爲(wèi)鑺傜偣
             */
            Object element = nodeList.get(i);
           
            /**
             * 璁塊棶璇ュ眰涓殑涓涓妭鐐?璁板綍璇ヨ妭鐐?br />              */
            stack.push(element);
           
            /**
             * root.size()=鏁撮鏍?wèi)鎵鎷ユ湁鐨勫眰嬈℃暟-1
             * treeDepthCounter >= root.size()-1 ,琛ㄧず宸茬粡鍒拌揪鏍?wèi)鐨勫彾瀛愯妭鐐?
             */
            if( treeDepthCounter >= root.size()-1) {
                /**
                 * 濡傛灉榪欐浠庢爲(wèi)鐨勭浜屽眰鑺傜偣鍒版爲(wèi)鐨勫彾瀛愯妭鐐圭殑鏃跺欑粨鏉燂紝
                 * 閭d箞鎵撳嵃姝ゆ鎼滅儲涓闂殑鎵鏈夎妭鐐?stack淇濆瓨璇ユ璁塊棶榪囩殑鎵鏈夎妭鐐?br />                  */
                Object[] one_traverse=new Object[root.size()];
               
                /**
                 * 鍙栧嚭鍜屾墦鍗板綋鍓峴tack涓殑鎵鏈夎褰?浣嗘槸涓嶇牬鍧弒tack涓殑鎵鏈夎褰?
                 */
                stack.copyInto(one_traverse);
                printArrayList(one_traverse);
            }else {
                /**
                 * 寮濮嬭闂笅涓灞傛鐨勬爲(wèi),nextDeepCounter涓轟笅涓灞傛鐨勫眰嬈℃暟.
                 */
                int nextDeepCounter=treeDepthCounter+1;
               
                /**
                 * 寰楀埌涓嬩竴灞傛涓婃墍鏈夌殑鏍?wèi)鑺傜?姣斿絎?灞傛涓婄殑鏍?wèi)鑺傜傄?guī)槸{m1,m2,m3}.
                 */
                ArrayList nextNodeList = (ArrayList) root.get(nextDeepCounter);
                /**
                 * 寮濮嬭闂笅涓灞傛鐨勬爲(wèi)鑺傜偣.
                 */
                traverse(root,nextDeepCounter,nextNodeList,stack);   
            }
           
            /**
             * 褰撹鑺傜偣璁塊棶緇撴潫鏃?浠庤褰曚腑鍒犻櫎璇ヨ妭鐐?
             */
            stack.pop();
        }
    }
}

濡傛灉杈撳叆鍐呭涓猴細(xì)
{1}
{2,3}
{4,5,6,7}
{8,9}

杈撳嚭緇撴灉涓猴細(xì)
{1,2,4,8}
{1,2,4,9}
{1,2,5,8}
{1,2,5,9}
{1,2,6,8}
{1,2,6,9}
{1,2,7,8}
{1,2,7,9}
{1,3,4,8}
{1,3,4,9}
{1,3,5,8}
{1,3,5,9}
{1,3,6,8}
{1,3,6,9}
{1,3,7,8}
{1,3,7,9}


濡傛灉杈撳叆鍐呭涓猴細(xì)
{1}
{2,1,3.3}
{4.4,5,6.5,7.0}
{8.2,9.1,java.lang.Object@3a803a80}

閭d箞杈撳嚭緇撴灉涓猴細(xì)
{1,2,4.4,8.2}
{1,2,4.4,9.1}
{1,2,4.4,java.lang.Object@3a803a80}
{1,2,5,8.2}
{1,2,5,9.1}
{1,2,5,java.lang.Object@3a803a80}
{1,2,6.5,8.2}
{1,2,6.5,9.1}
{1,2,6.5,java.lang.Object@3a803a80}
{1,2,7.0,8.2}
{1,2,7.0,9.1}
{1,2,7.0,java.lang.Object@3a803a80}
{1,1,4.4,8.2}
{1,1,4.4,9.1}
{1,1,4.4,java.lang.Object@3a803a80}
{1,1,5,8.2}
{1,1,5,9.1}
{1,1,5,java.lang.Object@3a803a80}
{1,1,6.5,8.2}
{1,1,6.5,9.1}
{1,1,6.5,java.lang.Object@3a803a80}
{1,1,7.0,8.2}
{1,1,7.0,9.1}
{1,1,7.0,java.lang.Object@3a803a80}
{1,3.3,4.4,8.2}
{1,3.3,4.4,9.1}
{1,3.3,4.4,java.lang.Object@3a803a80}
{1,3.3,5,8.2}
{1,3.3,5,9.1}
{1,3.3,5,java.lang.Object@3a803a80}
{1,3.3,6.5,8.2}
{1,3.3,6.5,9.1}
{1,3.3,6.5,java.lang.Object@3a803a80}
{1,3.3,7.0,8.2}
{1,3.3,7.0,9.1}
{1,3.3,7.0,java.lang.Object@3a803a80}


Joson 2008-09-02 07:15 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 故城县| 镇巴县| 鹤岗市| 正宁县| 广平县| 潼关县| 古蔺县| 林西县| 深圳市| 五台县| 湖南省| 高雄市| 桦川县| 德化县| 光山县| 沈丘县| 自治县| 铁岭市| 太湖县| 长汀县| 嫩江县| 抚宁县| 锡林浩特市| 凉城县| 棋牌| 六枝特区| 阳西县| 临沂市| 锡林浩特市| 定州市| 怀柔区| 舞钢市| 论坛| 鹤壁市| 天峻县| 南昌市| 黑水县| 子洲县| 黄浦区| 田阳县| 镇安县|