コード例 #1
0
ファイル: Tree.java プロジェクト: junwuwei/jmule-mod
 public Tree(String searchString) {
   NodeValue value = new NodeValue(FILE_NAME);
   value.setValue(DATA_KEY, searchString);
   root = new Node(value);
   last_node = root;
   nodes.put(root.getKey().getType(), root);
 }
コード例 #2
0
ファイル: Tree.java プロジェクト: junwuwei/jmule-mod
  private List<NodeValue> traverse(Node node) {
    if (node == null) return null;
    List<NodeValue> list = new LinkedList<NodeValue>();
    List<NodeValue> result;

    list.add(node.getKey());
    result = traverse(node.getLeftChild());
    if (result != null) {
      list.addAll(result);
      result.clear();
    }

    result = traverse(node.getRightChild());
    if (result != null) list.addAll(result);

    return list;
  }
コード例 #3
0
ファイル: Tree.java プロジェクト: junwuwei/jmule-mod
  private void add(NodeValue value) {
    Node r_node = new Node(last_node.getKey());

    nodes.remove(r_node.getKey());
    nodes.put(r_node.getKey().getType(), r_node);

    last_node.setLeftChild(r_node);
    last_node.setKey(new NodeValue(AND));
    Node new_node = new Node(value);

    nodes.put(new_node.getKey().getType(), new_node);

    last_node.setRightChild(new_node);
    last_node = new_node;
  }
コード例 #4
0
ファイル: Tree.java プロジェクト: junwuwei/jmule-mod
 /**
  * Add node to tree only if node not exist or update node key if node exist
  *
  * @param value
  */
 public void addNodeIfNeed(NodeValue value) {
   Node n = getNode(value.getType());
   if (n != null) n.setKey(value);
   else add(value);
 }