public void append(OPT_SpaceEffGraphNode node) { OPT_SpaceEffGraphNodeList p = new OPT_SpaceEffGraphNodeList(); p._node = node; OPT_SpaceEffGraphNodeList last = _last; if (last == null) { // will be the case for first edge. _first = p; _last = p; } else { // there is at least one node. last._next = p; p._prev = last; // doubly linked list. _last = p; } }
public boolean add(OPT_SpaceEffGraphNode node) { OPT_SpaceEffGraphNodeList p = first(); OPT_SpaceEffGraphNodeList prev = first(); if (p == null) { // will be the case for first node. p = new OPT_SpaceEffGraphNodeList(); p._node = node; _first = p; _last = p; return true; } while (p != null) { if (p._node == node) // node already in list. return false; prev = p; p = p._next; } prev._next = new OPT_SpaceEffGraphNodeList(); prev._next._node = node; prev._next._prev = prev; // doubly linked list. _last = prev._next; return true; }