Example #1
0
  /**
   * ���ýڵ����
   *
   * @param clusteringFeature ��ǰ�ڵ�
   * @param level ��ǰ���ֵ
   */
  private void setTreeLevel(ClusteringFeature clusteringFeature, int level) {
    LeafNode leafNode = null;
    NonLeafNode nonLeafNode = null;

    if (clusteringFeature instanceof LeafNode) {
      leafNode = (LeafNode) clusteringFeature;
    } else if (clusteringFeature instanceof NonLeafNode) {
      nonLeafNode = (NonLeafNode) clusteringFeature;
    }

    if (nonLeafNode != null) {
      nonLeafNode.setLevel(level);
      level++;
      // �����ӽڵ�
      if (nonLeafNode.getNonLeafChilds() != null) {
        for (NonLeafNode n1 : nonLeafNode.getNonLeafChilds()) {
          setTreeLevel(n1, level);
        }
      } else {
        for (LeafNode n2 : nonLeafNode.getLeafChilds()) {
          setTreeLevel(n2, level);
        }
      }
    } else {
      leafNode.setLevel(level);
      level++;
      // �����Ӿ۴�
      for (Cluster c : leafNode.getClusterChilds()) {
        c.setLevel(level);
      }
    }
  }