package voronoi; class cEdgeList { int n; cEdge head; cEdgeList() { head = null; n = 0; } public void InitHead(cEdge h) { head = new cEdge(); head = h; head.next = head.prev = head; n = 1; } public void InsertBefore(cEdge newE, cEdge oldE) { if (head == null) InitHead(newE); else { oldE.prev.next = newE; newE.prev = oldE.prev; newE.next = oldE; oldE.prev = newE; n++; } } public void InsertBeforeHead(cEdge e) { if (head == null) InitHead(e); else { InsertBefore(e, head); } } public cEdge MakeNullEdge() { cEdge e = new cEdge(); InsertBeforeHead(e); return e; } public void Delete(cEdge e) { if (head == head.next) head = null; else if (e == head) head = head.next; e.prev.next = e.next; e.next.prev = e.prev; n--; } public void ClearEdgeList() { if (head != null) head = null; n = 0; } }