package pathgame.algorithm; import java.util.ArrayList; public class OddDegreeList { private ArrayList items = new ArrayList<>(); private ArrayList itemUsed = new ArrayList<>(); public void add(int vertex) { items.add(vertex); itemUsed.add(false); } public int size() { return items.size(); } public void resetUsed() { for(int i = 0; i < itemUsed.size(); i++) { itemUsed.set(i, false); } } public int getUnused(int offSet) { return items.get(getOffsetPos(offSet)); } public int makeOffsetUsed(int offSet) { int pos = getOffsetPos(offSet); itemUsed.set(pos, true); return pos; } public void makePosUsed(int pos) { itemUsed.set(pos, true); } public void makeUnused(int pos) { itemUsed.set(pos, false); } private int getOffsetPos(int offSet) { int foundValid = 0; for (int i = 0; i < items.size(); i++) { if (!itemUsed.get(i)) { if (offSet == foundValid) { return i; /*itemUsed.set(i, true); return items.get(i);*/ } foundValid++; } } return -1; } }