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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rootedcatgraph.java

?? 自己編的ID3算法很小但效果很好
?? JAVA
字號:
package id3;
import java.io.*;
import shared.*;
import shared.Error;

/** RootedCatGraph instances have a specific root node. All nodes in RootedCatGraphs
 * should be reachable from the root.
 *
 * @author Richard Long 8/27/93 Initial revision (.c) <BR> 8/04/93 Initial revision (.h)
 *
 * @author James Louis Java implementation.
 */
public class RootedCatGraph extends CatGraph {
    
    private Node root;
    
    /** Constructor. Initializes root to NULL.
     * @param isGraphSparse TRUE if the graph is sparse.
     */
    public RootedCatGraph(boolean isGraphSparse) {
        super(isGraphSparse);
        root = null;
    }
    
    /** Constructor.
     * @param grph The graph to be assigned to this RootedCatGraph.
     * @param isGraphSparse TRUE if the graph is sparse.
     */
    public RootedCatGraph(CGraph grph, boolean isGraphSparse) {
        super(grph, isGraphSparse);
        root = null;
    }
    
    /** The number of non-trivial nodes in the CatGraph. Trivial nodes are those
     * that both have no instances, and have unknown edges leading to them.
     *
     * @return The number of non-trivial nodes.
     */
    public int num_nontrivial_nodes(){return num_nontrivial_nodes(null);}
    
    /** The number of non-trivial nodes in the CatGraph. Trivial nodes are those
     * that both have no instances, and have unknown edges leading to them.
     *
     * @param fromRoot The node to use as the root in searching for nodes.
     * @return The number of non-trivial nodes.
     */
    public int num_nontrivial_nodes(Node fromRoot) {
        if (fromRoot == null)
            fromRoot = get_root(true);
        
        int numNodes = 1;
        
        
        //      Edge iterEdge;
        //      forall_adj_edges(iterEdge, fromRoot) {
        for(Edge iterEdge=fromRoot.First_Adj_Edge(0); iterEdge != null ;iterEdge = iterEdge.Succ_Adj_Edge(fromRoot)){
            
            if (!trivial_edge(iterEdge)) {
                Node childNode = iterEdge.target();
                numNodes += num_nontrivial_nodes(childNode);
            }
        }
        //      ASSERT(numNodes <= num_nodes());
        return numNodes;
    }
    
    /** The number of non-trivial leaves in the CatGraph. Trivial nodes are those
     * that both have no instances, and have unknown edges leading to them.
     *
     * @return The number of non-trivial leaves.
     */
    public int num_nontrivial_leaves(){return num_nontrivial_leaves(null);}
    
    /** The number of non-trivial leaves in the CatGraph. Trivial nodes are those
     * that both have no instances, and have unknown edges leading to them.
     *
     * @param fromRoot The node to use as root in searching for leaves.
     * @return The number of non-trivial leaves.
     */
    public int num_nontrivial_leaves(Node fromRoot) {
        if (fromRoot == null)
            fromRoot = get_root(true);
        
        if (num_children(fromRoot) == 0)
            return 1;
        else {
            int numLeaves = 0;
            
            for (Edge iterEdge = fromRoot.first_adj_edge(); iterEdge != null;
            iterEdge = iterEdge.adj_succ()) {
                if (!trivial_edge(iterEdge)) {
                    Node childNode = iterEdge.target();
                    numLeaves += num_nontrivial_leaves(childNode);
                }
            }
            //         DBGSLOW(ASSERT(numLeaves <= num_leaves()));
            return numLeaves;
        }
    }
    
    /** Check if an edge is trivial. A trivial edge has an unknown label and leads to a
     * node with no instances.
     *
     * @param e The edge to be checked.
     * @return TRUE if the edge is trivial, FALSE otherwise.
     */
    public boolean trivial_edge(Edge e) {
        return (((AugCategory)cGraph.inf(e)).num() == Globals.UNKNOWN_CATEGORY_VAL &&
        MLJ.approx_equal(
        (float)(get_categorizer(e.target()).total_weight()),
        (float)0.0)
        );
    }

    /** Sets the root of the RootedCatGraph.
     *
     * @param node The new root node.
     */
    public void set_root(Node node) {
        //DBG(if (node != null)
        //       check_node_in_graph(node, true));
        root = node;
    }
    
    
    /** If the root has been set, returns the root.
     * @return The root node of this RootedCatGraph.
     */
    public Node get_root() {
        return get_root(false);
    }
    
    /** If the root has been set, returns the root. If abortOnNULL is FALSE returns NULL
     * if root has not been set. Otherwise aborts when root is not set.
     *
     * @param abortOnNoRoot TRUE if aborting should occur when there is no root, FALSE if the method returns
     * null if there is no root node set.
     * @return The root node or null if the root is not set.
     */
    public Node get_root(boolean abortOnNoRoot) {
        if (root == null && abortOnNoRoot)
            Error.fatalErr("RootedCatGraph::get_root: Root has not been set");
        return root;
    }
    
    /** Sets the attributes used.
     * @param usedAttr An array indicating used attributes. Used attributes are indicated with TRUE
     * values in their index numbers. Unused attributes are indicated with FALSE values.
     */
    public void set_used_attr(boolean[] usedAttr)
    { cGraph.set_used_attr(usedAttr); }
    
    /** Displays the root, as well as CatGraph.display().
     * @param hasNodeLosses TRUE if node loss values have been set.
     * @param hasLossMatrix TRUE if loss matrix has been set.
     * @param stream The Writer to be displayed to.
     * @param dp The display preferences.
     */
    public void display(boolean hasNodeLosses, boolean hasLossMatrix,
    Writer stream, DisplayPref dp) {
        try{
            if (dp.preference_type() == DisplayPref.ASCIIDisplay)
                if (root != null)
                    stream.write("Root: " + get_categorizer(root).description()
                    + "\n");
                else
                    stream.write("Warning, no root defined for graph" + "\n");
            super.display(hasNodeLosses, hasLossMatrix, stream, dp);
        }catch(IOException e){e.printStackTrace();}
    }
    
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久久久久久多人混战| 国产精品的网站| 国产一区999| 一区二区三区欧美| 2023国产一二三区日本精品2022| 99久久精品国产一区| 久久疯狂做爰流白浆xx| 亚洲精品日产精品乱码不卡| 精品久久久久久久久久久久包黑料| 欧美日韩mp4| 国产精品一区二区91| 久久精品久久精品| 亚洲柠檬福利资源导航| 韩国女主播一区二区三区| 色综合久久综合网| 久久久久久久久97黄色工厂| 五月综合激情网| 五月婷婷另类国产| 美女一区二区久久| 久久99国产精品尤物| 国产老肥熟一区二区三区| 国产成人亚洲精品狼色在线| 成人午夜看片网址| 91蜜桃传媒精品久久久一区二区| 日韩欧美亚洲国产精品字幕久久久| 色综合欧美在线视频区| 91麻豆成人久久精品二区三区| 成人午夜精品一区二区三区| 国产在线国偷精品产拍免费yy| 青青草成人在线观看| 开心九九激情九九欧美日韩精美视频电影| 午夜欧美电影在线观看| 日韩福利电影在线观看| 麻豆精品视频在线观看视频| 久久精品久久精品| 国产精品一区二区免费不卡 | 欧美日韩一区 二区 三区 久久精品 | 日本道在线观看一区二区| 91丨九色丨蝌蚪富婆spa| 成人av在线影院| www.日韩大片| 欧美丰满少妇xxxxx高潮对白| 欧美日韩精品一区二区天天拍小说| 欧美一卡2卡3卡4卡| 欧美一区二区三区的| 视频一区在线播放| 精品一区二区日韩| 美女视频黄频大全不卡视频在线播放 | 欧美群妇大交群中文字幕| 丝袜美腿亚洲综合| 久久综合久久综合九色| 欧美日韩在线电影| 337p粉嫩大胆色噜噜噜噜亚洲 | 日本欧美久久久久免费播放网| 国产综合色精品一区二区三区| 91尤物视频在线观看| 日韩一级视频免费观看在线| 中文字幕亚洲综合久久菠萝蜜| 日韩成人免费看| 91香蕉视频mp4| www国产亚洲精品久久麻豆| 一区二区三区视频在线看| 激情综合网激情| 91国偷自产一区二区三区观看| 精品久久人人做人人爽| 亚洲综合免费观看高清在线观看| 国产黄色91视频| 91精品啪在线观看国产60岁| 18成人在线观看| 国产精品99久久久久久久vr | 久久久青草青青国产亚洲免观| 久久成人精品无人区| 色综合久久久久久久久久久| 久久久噜噜噜久久中文字幕色伊伊| 亚洲成人先锋电影| 色偷偷88欧美精品久久久| 99久久婷婷国产综合精品| 精品第一国产综合精品aⅴ| 天堂在线一区二区| 一本到不卡免费一区二区| 国产三级精品三级在线专区| 老色鬼精品视频在线观看播放| 欧美私模裸体表演在线观看| 中文字幕日韩av资源站| 亚洲欧美色综合| 成人av高清在线| 日本一区二区免费在线| 国内精品伊人久久久久av影院| 91精品国产免费| 香港成人在线视频| 欧美无人高清视频在线观看| 亚洲精品日韩专区silk| 一本色道久久加勒比精品| 国产亚洲欧洲997久久综合| 韩国在线一区二区| 精品久久久久久无| 精品在线免费观看| 欧美大片在线观看一区| 天使萌一区二区三区免费观看| 欧洲日韩一区二区三区| 亚洲免费在线视频| 91福利资源站| 亚洲精品国产一区二区三区四区在线| 99re在线精品| 亚洲女人小视频在线观看| 欧美午夜片在线观看| 亚洲成人午夜电影| 欧美美女喷水视频| 午夜激情一区二区| 老司机一区二区| 日韩欧美电影一二三| 蜜臀av一区二区| www精品美女久久久tv| 丁香婷婷深情五月亚洲| 国产精品丝袜一区| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲视频一区在线| 91福利社在线观看| 午夜成人免费视频| 精品美女在线播放| 国产不卡在线播放| 专区另类欧美日韩| 欧美三日本三级三级在线播放| 日韩精品欧美精品| 久久一区二区三区国产精品| 精品午夜久久福利影院| 国产亚洲婷婷免费| 日本电影亚洲天堂一区| 日韩av电影免费观看高清完整版 | 精品国产乱子伦一区| 国产精品自在在线| 中文字幕亚洲区| 欧美日韩国产一二三| 九一久久久久久| 欧美激情在线一区二区三区| 一本一道久久a久久精品综合蜜臀| 亚洲综合另类小说| 精品999在线播放| 日韩高清不卡一区二区三区| 久久免费美女视频| 91啪亚洲精品| 日本亚洲最大的色成网站www| 久久这里只有精品视频网| 成人网页在线观看| 亚洲第一福利一区| 国产午夜精品久久| 欧美日韩亚洲高清一区二区| 蜜臀av性久久久久蜜臀aⅴ| 精品视频一区二区不卡| 欧美激情一区二区三区不卡| 国产一区二区三区最好精华液| 国产精品色哟哟网站| 性做久久久久久免费观看欧美| 成人动漫视频在线| 亚洲777理论| 欧美国产97人人爽人人喊| 欧美三片在线视频观看| 国产精品情趣视频| 欧美丰满高潮xxxx喷水动漫| 岛国av在线一区| 视频一区欧美精品| 国产精品狼人久久影院观看方式| 7777女厕盗摄久久久| 北条麻妃一区二区三区| 日本大胆欧美人术艺术动态| 国产精品成人免费在线| 精品国产三级a在线观看| 在线一区二区三区做爰视频网站| 国产精品亚洲午夜一区二区三区| 亚洲国产精品欧美一二99| 国产精品视频免费看| 精品国产三级电影在线观看| 欧美日韩一卡二卡三卡| 本田岬高潮一区二区三区| 国内外成人在线视频| 五月婷婷久久综合| 一区二区三区四区在线播放| 久久久精品国产免费观看同学| 欧美日韩一级大片网址| 色吊一区二区三区| 亚洲福利一区二区三区| 最新国产成人在线观看| 久久久国产午夜精品| 日韩色在线观看| 欧美日韩国产中文| 欧美性受xxxx| 一本一道久久a久久精品 | 久久av中文字幕片| 污片在线观看一区二区| 亚洲欧美日韩系列| 国产精品天天摸av网| 精品黑人一区二区三区久久| 欧美精品在线一区二区三区| 日本大香伊一区二区三区| www.日韩精品| 91在线观看视频| 午夜视黄欧洲亚洲| 有码一区二区三区| 一区二区在线免费观看| 亚洲免费大片在线观看|