public class Node {
    public Point point;
    public double thickness;
    public double sectorialArea = 0.0;
    public ArrayList<Node> links = null;
    public Node parent = null;

    public Node(Point point, double thickness) {
        this.point = point;
        this.thickness = thickness;
    }

    public Node(Point point) {
        this(point, 1.0);
    }

    public void connect(Node node) {
        throw new NotImplementedException();
    }

    public void disconnect(Node node) {
        throw new NotImplementedException();
    }

    public String toString() {
        throw new NotImplementedException();
    }
}

@@ -1,12 +1,42 @@
+import java.util.ArrayList;%0A%0A%0A
 public class
@@ -441,44 +441,79 @@
     
-throw new NotImplementedException();
+if (!links.contains(node)) %7B%0A            links.add(node);    %0A        %7D
 %0A   
@@ -568,42 +568,25 @@
     
-throw new NotImplementedException(
+links.remove(node
 );%0A 
@@ -634,42 +634,259 @@
     
-throw new NotImplementedException(
+StringBuilder sb = new StringBuilder();%0A        for (Node node : this.links) %7B%0A            sb.append(node.point).append(%22, %22);%0A        %7D%0A        String points = sb.toString();%0A        return String.format(%22node: %25s linked with: %25s%22, this.point, points
 );%0A 

complete methods