亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? treepairs.java

?? 生物物種進(jìn)化歷程的演示
?? JAVA
字號(hào):
/*   Copyright (c) 2002 Compaq Computer Corporation      SOFTWARE RELEASE      Permission is hereby granted, free of charge, to any person obtaining   a copy of this software and associated documentation files (the   "Software"), to deal in the Software without restriction, including   without limitation the rights to use, copy, modify, merge, publish,   distribute, sublicense, and/or sell copies of the Software, and to   permit persons to whom the Software is furnished to do so, subject to   the following conditions:      - Redistributions of source code must retain the above copyright     notice, this list of conditions and the following disclaimer.      - Redistributions in binary form must reproduce the above copyright     notice, this list of conditions and the following disclaimer in the     documentation and/or other materials provided with the distribution.      - Neither the names of Compaq Research, Compaq Computer Corporation     nor the names of its contributors may be used to endorse or promote     products derived from this Software without specific prior written     permission.      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.    IN NO EVENT SHALL COMPAQ COMPUTER CORPORATION BE LIABLE FOR ANY CLAIM,   DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR   OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR   THE USE OR OTHER DEALINGS IN THE SOFTWARE.*/package TreeJuxtaposer;import AccordionTreeDrawer.Tree;import AccordionTreeDrawer.TreeNode;import java.util.*;/** * TreePairs store all the pairwise data structures needed for * structural comparison and visulization. * * @author Tamara Munzner, Serdar Tasiran, Li Zhang, Yunhong Zhou * @version  * @see TreeJuxtaposer.TreeJuxtaposer * @see TreeJuxtaposer.Tree2Tree * @see     AccordionDrawer.Tree * @see     AccordionDrawer.GridCell * **/public class TreePairs {    ArrayList trees;     /**     * the hash map that stores all the Tree2Tree objects.   the     * pairs are indexed first by the key of one tree in the pair      * and then by the key of the other tree in the pair. a better      * solution would be to use the key pair to index each pair. but     *  since the number of trees is small and is likely in the     * range  fewer than 10, it does not really matter how we     * implement it.     */    HashMap pairs;     TreePairs() {	trees = new ArrayList();	pairs = new HashMap();    }    /**     * Add a new tree      *     * Create the data structure between the tree and all the     * previously added trees.     **/         void addTree(Tree newTree, int eL) {	if(trees.size()>=1) {	    // we need to add all the pairs between newTree and all	    // the previously added trees.	    HashMap h = new HashMap();	    	    pairs.put(newTree, h); 	    	    // construct the data structure between the newly added	    // tree and every previously added tree	    for(int i=0; i<trees.size(); i++) {		Tree t = (Tree)trees.get(i);		Tree2Tree t2t = new Tree2Tree(t,newTree,eL);		h.put(t, t2t);		HashMap ht = (HashMap)pairs.get(t);		if(ht==null) {		    // this happens when there was only one tree in		    // the list 		    ht = new HashMap();		    ht.put(newTree, t2t);		    pairs.put(t, ht);		} else		    ht.put(newTree, t2t);	    }	}	trees.add(newTree);    }		Tree2Tree getPair(Tree t1, Tree t2)	{		HashMap h = (HashMap) pairs.get(t1);		if (h == null)			return null;		return (Tree2Tree) h.get(t2);	}	/**	* remove a tree and the  relevant tree pairs  	* @see Tree2Tree.close	* @see TreeJuxtaposer.deleteTree	*/	void removeTree(Tree deletedTree)	{		trees.remove(deletedTree);		HashMap h = (HashMap) pairs.get(deletedTree);		//			WeakHashMap h = (WeakHashMap)pairs.get(deletedTree);		for (int i = 0; i < trees.size(); i++) {			Tree2Tree t2t = (Tree2Tree) h.get(trees.get(i));			t2t.close();		}		pairs.remove(deletedTree);		for (int i = 0; i < trees.size(); i++) {			HashMap hm = (HashMap) pairs.get(trees.get(i));			//				  WeakHashMap hm = (WeakHashMap)pairs.get(trees.get(i));			Tree2Tree t2t = (Tree2Tree) hm.get(deletedTree);			t2t.close();			hm.remove(deletedTree);		}	}    /**     * Computes the node in Tree "other" whose set of descendant     * leaves best matches that of TreeNode n in Tree "source"     *      * The best match is the node n' maximizing the following score     * | S(n) Intersection S(n') | / | S(n) Union S(n') |      *      * where S(n) is the set of leaves that are descendants of node n.     *      * @author   Tamara Munzner, Serdar Tasiran, Li Zhang, Yunhong Zhou     *      * @see      AccordionDrawer.Tree     * @see      AccordionDrawer.TreeNode     * @see      TreeJuxtaposer.NodeScorePair     */	TreeNode getBestCorrNode(Tree source, TreeNode n, Tree other, int el)	{		if (source == other)			return n;		if (null == n)			return null;		Tree2Tree t2t = getPair(source, other);		if (t2t == null)			return null;		return t2t.getBestCorrNode(source, n, other, el);	}	ArrayList getBestNodeList(Tree source, TreeNode n, Tree other, int el)	{		if (null == n)			return null;		Tree2Tree t2t = getPair(source, other);		if (t2t == null)			return null;		ArrayList returnValue = t2t.getCorrRange(source, n, other, el);		return returnValue;	}    /**     * Computes the matching score for the node in Tree "other" whose     * set of descendant leaves best matches that of TreeNode n in     * Tree "source"      *      * The matching score between nodes n and n' is computed as     * follows:     *     * | S(n) Intersection S(n') | / | S(n) Union S(n') |      *      * where S(n) is the set of leaves that are descendants of node n.     *      * @author   Tamara Munzner, Serdar Tasiran, Li Zhang, Yunhong Zhou     *      * @see      AccordionDrawer.Tree     * @see      AccordionDrawer.TreeNode     * @see      TreeJuxtaposer.NodeScorePair     */    float getBestCorrNodeScore(Tree source, TreeNode n, Tree other, int el) {		if (source == other) return 1.0f;	Tree2Tree t2t = getPair(source, other);	if(t2t==null) return 0.0f;	return t2t.getBestCorrNodeScore(source, n, other, el);    }//    /**//     * Computes the dissimilarity distance between source and other//     * //     * The distance is computed by summing up getBestCorrNode scores//     * between each tree node in source and the best matching node in//     * other //     *//     * <Pre>//     * mode 0: alpha is the cut off//     * 1: (1-s)^\alpha//     * 2: 1-s^{1/\alpha}//     * </Pre>//     *//     */ //	// never called//    float computeDistance(Tree source, Tree other, float a, int m) throws Exception {//	Tree2Tree t2t = getPair(source, other);//	if(t2t==null) return 0.0f;//	return t2t.computeDistance(a, m);//    }//    /**//     * Given a node range in one tree, determine whether there's an overlap//     * with the node range in the other tree. //     *//     * @return Number of overlapping nodes, possibly 0//     */////    /** //     * given a node range in one tree, say whether there's an overlap//     * with the node range in the other tree. returns number of//     * overlapping nodes, possibly 0//     **///    // never called//    public int isRangeInRange(Tree treeA, int AMin, int AMax, //			      Tree treeB, int BMin, int BMax) throws Exception {//	Tree2Tree t2t = getPair(treeA, treeB);//	if(t2t==null) return -2;//	return t2t.isRangeInRange(treeA, AMin, AMax, treeB, BMin, BMax);//    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合色天天鬼久久鬼色| 91精品国产全国免费观看| 亚洲成av人片一区二区| 2020国产精品| 国产精品三级av在线播放| 欧美日韩在线直播| 福利视频网站一区二区三区| 日韩国产高清影视| 国产精品美女久久久久aⅴ | 欧美影院午夜播放| 免费精品视频最新在线| 国产精品美女久久久久久| 成人精品视频一区| 久久精品二区亚洲w码| 亚洲最色的网站| 中文在线免费一区三区高中清不卡 | 亚洲视频一区二区在线观看| 欧美一区二区视频在线观看| 色久综合一二码| 高清免费成人av| 国内精品在线播放| 日韩精品一级中文字幕精品视频免费观看| 蜜桃久久久久久| 国产精品三级av在线播放| 精品国产三级电影在线观看| 欧美麻豆精品久久久久久| 一本久道久久综合中文字幕| 国产不卡免费视频| 寂寞少妇一区二区三区| 日韩精品一二区| 亚洲va国产va欧美va观看| 亚洲男人的天堂在线aⅴ视频| 日本一区二区动态图| 久久综合中文字幕| 久久综合九色综合欧美亚洲| 日韩免费在线观看| 一区二区三区免费看视频| 久久久青草青青国产亚洲免观| 日韩一区二区免费高清| 欧美日本一道本| 欧美日本韩国一区二区三区视频| 欧美亚洲丝袜传媒另类| 欧美视频在线一区二区三区| 欧美伊人久久久久久午夜久久久久| 91同城在线观看| 一本色道久久综合狠狠躁的推荐| 99精品久久只有精品| 91香蕉视频污| 在线看国产一区| 欧洲视频一区二区| 欧美日韩综合在线| 91麻豆精品国产综合久久久久久| 欧美日韩国产区一| 欧美一卡二卡三卡| 2022国产精品视频| 国产精品麻豆网站| 一区二区三区久久| 丝袜美腿亚洲色图| 蜜芽一区二区三区| 激情久久五月天| 国产91丝袜在线18| gogo大胆日本视频一区| 在线观看亚洲专区| 欧美一区二区三区视频在线观看| 精品国产乱码久久久久久闺蜜| 久久欧美中文字幕| 国产精品久久久一本精品| 亚洲激情第一区| 日本免费在线视频不卡一不卡二 | 久久综合av免费| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲资源中文字幕| 另类调教123区| 国产凹凸在线观看一区二区| 91丨九色porny丨蝌蚪| 欧美日韩精品一区视频| 2021中文字幕一区亚洲| 亚洲欧洲在线观看av| 亚洲成av人片www| 国产精品99久久久久久有的能看 | 日韩视频国产视频| 欧美成人高清电影在线| 国产欧美精品一区| 亚洲高清视频中文字幕| 狠狠色综合播放一区二区| 99久久久久免费精品国产| 777午夜精品免费视频| 国产欧美精品一区| 丝袜脚交一区二区| 国产很黄免费观看久久| 欧美日韩免费视频| 国产欧美日韩三级| 日韩电影免费一区| 91蝌蚪porny成人天涯| 欧美tickling挠脚心丨vk| 亚洲国产精品精华液ab| 日本欧美在线看| 色噜噜狠狠一区二区三区果冻| 精品欧美黑人一区二区三区| 一区二区三区资源| 国产成人免费高清| 欧美一区二区三区日韩| 亚洲男女毛片无遮挡| 国产在线精品一区二区夜色| 日韩理论电影院| 日韩午夜三级在线| 国内精品自线一区二区三区视频| 成人综合日日夜夜| 欧美电视剧免费全集观看| 亚洲精选视频在线| 国产·精品毛片| 日韩亚洲欧美在线| 亚洲一区二区三区免费视频| 懂色av一区二区夜夜嗨| 日韩免费电影网站| 亚洲国产日韩a在线播放| www.亚洲人| 久久久久国产精品麻豆| 日韩高清在线不卡| 欧美午夜宅男影院| 亚洲三级电影网站| 成人动漫av在线| 久久美女艺术照精彩视频福利播放 | 国产激情一区二区三区| 欧美变态口味重另类| 日本91福利区| 欧美一区二区三区在线观看视频| 在线看不卡av| 久久精品国产免费看久久精品| jizzjizzjizz欧美| 久久久久久免费| 免费在线观看一区| 欧美一区二区三区四区高清| 天天色图综合网| 欧美精品成人一区二区三区四区| 亚洲精品免费视频| 一本大道综合伊人精品热热| 国产精品成人一区二区三区夜夜夜| 成人午夜精品在线| 国产亚洲精品精华液| 大白屁股一区二区视频| 国产精品美女久久久久aⅴ国产馆| 91精品福利在线一区二区三区| 亚洲一区在线观看视频| 欧美色精品在线视频| 香蕉影视欧美成人| 91精品国产入口在线| 美女国产一区二区| 精品国产免费人成在线观看| 久久精品国产99国产精品| 国产一区二区三区高清播放| 欧美丰满高潮xxxx喷水动漫 | 日韩一区欧美一区| 99久久免费视频.com| 成人免费在线视频观看| 欧美在线免费观看亚洲| 五月天精品一区二区三区| 欧美一区二区三区色| 国产在线不卡一区| 一区在线观看免费| 在线观看视频一区二区欧美日韩| 亚洲电影你懂得| 欧美tk—视频vk| 成人美女在线视频| 伊人夜夜躁av伊人久久| 欧美久久久久免费| 国产精品亚洲视频| 亚洲特级片在线| 欧美日韩电影在线播放| 九一久久久久久| 国产精品久久久久aaaa| 日本福利一区二区| 免费av网站大全久久| 国产精品乱码妇女bbbb| 欧美色综合网站| 久久69国产一区二区蜜臀| 国产精品毛片大码女人| 欧美久久久久中文字幕| 国产盗摄一区二区三区| 一区二区三区免费观看| 日韩一区二区在线免费观看| 成人激情校园春色| 日韩电影在线看| 国产精品麻豆一区二区| 欧美顶级少妇做爰| 懂色av一区二区三区免费观看| 亚洲成人免费观看| 国产视频911| 欧美日韩精品系列| 本田岬高潮一区二区三区| 亚洲va韩国va欧美va| 国产精品视频第一区| 欧美精品日韩一本| 成人深夜在线观看| 日本不卡不码高清免费观看| 国产精品久久久久久久久免费相片 | 国产三级一区二区| 欧美高清视频一二三区| 成人黄色在线网站| 激情综合五月天|