public void merge(BTreeNode parent, int pos, BTreeNode left, BTreeNode right) {
		state = State.merge;
		// parentƵleft֮
		left.value[left.numOfElements + 1] = parent.value[pos];
		// rightƵparent֮
		for (int i = 1; i <= right.numOfElements; i++) {
			left.value[left.numOfElements + 1 + i] = right.value[i];
		}
		// rightҶڵ㣬Ҫƺӹȥ
		if (!right.isLeaf) {
			for (int i = 0; i <= right.numOfElements; i++) {
				left.children[left.numOfElements + 1 + i] = right.children[i];
			}
		}
		// ޸leftԪ
		left.numOfElements += 1 + right.numOfElements;
		// ޸parentĺӣpos֮ǰƶһλ
		for (int i = pos; i < parent.numOfElements; i++) {
			parent.value[i] = parent.value[i + 1];
			parent.children[i] = parent.children[i + 1];
		}
		// ޸parentԪ
		parent.numOfElements -= 1;
	}