123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package pathgame.algorithm;
- import java.util.ArrayList;
- public class OddDegreeList {
- private ArrayList<Integer> items = new ArrayList<>();
- private ArrayList<Boolean> 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;
- }
- }
|