protected <T> boolean isPreferredSplitState(Pair<Integer, StateAlias<T>> state1, Pair<Integer, StateAlias<T>> state2) { int count1 = state1.getSecond().getElement().getElementCount(); int count2 = state2.getSecond().getElement().getElementCount(); if (count1 != count2) return count1 < count2; int size1 = state1.getSecond().getOutgoing().size() + state1.getSecond().getIncoming().size(); int size2 = state2.getSecond().getOutgoing().size() + state2.getSecond().getIncoming().size(); if (size1 != size2) return size1 < size2; return state1.getFirst() > state2.getFirst(); }
protected <T> boolean isPreferredSplitState(Pair<Integer, StateAlias<T>> state1, Pair<Integer, StateAlias<T>> state2) { int count1 = state1.getSecond().getElement().getElementCount(); int count2 = state2.getSecond().getElement().getElementCount(); if (count1 != count2) return count1 < count2; int size1 = state1.getSecond().getOutgoing().size() + state1.getSecond().getIncoming().size(); int size2 = state2.getSecond().getOutgoing().size() + state2.getSecond().getIncoming().size(); if (size1 != size2) return size1 < size2; return state1.getFirst() > state2.getFirst(); }
@Override protected int getElementCount() { int result = 1; for (AbstractElementAlias<T> child : children) result += child.getElementCount(); return result; }
@Override protected int getElementCount() { int result = 1; for (AbstractElementAlias<T> child : children) result += child.getElementCount(); return result; } }
@Override protected int getElementCount() { int result = 1; for (AbstractElementAlias<T> child : children) result += child.getElementCount(); return result; }
@Override protected int getElementCount() { int result = 1; for (AbstractElementAlias<T> child : children) result += child.getElementCount(); return result; }