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); }
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; }
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; }
/** * 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); }