summaryrefslogtreecommitdiffstats
path: root/voronoi/cEdgeList.java
diff options
context:
space:
mode:
Diffstat (limited to 'voronoi/cEdgeList.java')
-rw-r--r--voronoi/cEdgeList.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/voronoi/cEdgeList.java b/voronoi/cEdgeList.java
new file mode 100644
index 0000000..ad75511
--- /dev/null
+++ b/voronoi/cEdgeList.java
@@ -0,0 +1,61 @@
+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;
+ }
+}