public void addNode(DTreeNode parent, DTreeNode node)
 {
     // 当前没有根节点,则设置根节点
     if (mRootNode == null)
     {
         mRootNode = node;
     }
     // 除了根节点以外,其他所有节点必须拥有一个已经添加到决策树的子节点
     else
     {
         if (parent != null && !mNodeList.ContainsKey(parent.getID()))
         {
             logError("找不到父节点,不能将节点添加到该节点下");
             return;
         }
     }
     mNodeList.Add(node.getID(), node);
     node.setParent(parent);
     parent?.addChild(node);
 }
 // 移除一个叶节点
 public void removeNode(DTreeNode node)
 {
     if (node.getChildList().Count > 0)
     {
         logError("can not remove a node which has child! use clearNode instead!");
         return;
     }
     // 从父节点中移除
     if (node.getParent() != null)
     {
         node.mParent.removeChild(node);
     }
     // 清除节点的父节点
     node.setParent(null);
     // 将节点从列表中移除
     mNodeList.Remove(node.getID());
     if (node == mRootNode)
     {
         mRootNode = null;
     }
 }