コード例 #1
0
  boolean isIntersecting(LinkedList6 l) {
    int n1 = this.numNodes();
    int n2 = l.numNodes();
    if (n1 == 0 || n2 == 0) return false;
    Node6 ln1 = this.getLast();
    Node6 ln2 = l.getLast();
    if (ln1 != ln2) return false;
    Node6 n;
    Node6 m;
    int i;
    if (n1 > n2) {
      i = 1;
      n = this.start;
      while (i < n1 - n2 + 1) {
        n = n.next;
        i++;
      }
      m = l.start;
      return intersecting(n, m);
    } else if (n1 <= n2) {
      i = 1;
      n = l.start;
      while (i < n2 - n1 + 1) {
        n = n.next;
        i++;
      }
      m = this.start;
      return intersecting(n, m);
    }

    return false;
  }
コード例 #2
0
  public static void main(String args[]) throws IOException {
    Scanner sc = new Scanner(System.in);
    LinkedList6 l1 = new LinkedList6();

    System.out.println("populate linkedlist1 with integers");
    int i = 0;
    while (true) {
      i++;
      System.out.println("enter integer value of node" + i + " or enter -1 to exit");
      int num = sc.nextInt();
      if (num == -1) break;
      l1.insert(num);
    }
    LinkedList6 l2 = new LinkedList6();

    System.out.println("populate linkedlist2 with integers");
    i = 0;
    while (true) {
      i++;
      System.out.println("enter integer value of node" + i + " or enter -1 to exit");
      int num = sc.nextInt();
      if (num == -1) break;
      l2.insert(num);
    }
    System.out.println("when L1 and L2 do not intersect:");
    l1.display();
    l2.display();
    if (l1.isIntersecting(l2)) System.out.println("L1 and L2 intersect!");
    else System.out.println("L1 and L2 do not intersect!");
    // creating an intersection to check whether the isIntersecting() function works.
    Random r = new Random();
    // appending l2 to l1 randomly
    int ref = r.nextInt(l1.numNodes() + 1);
    Node6 reference = l1.getReference(ref);
    l2.makeIntersect(
        reference); // l2 is appended to l1 at the reference node returned by getReference()
    l2.display();
    if (l1.isIntersecting(l2)) System.out.println("L1 and L2 intersect!");
    else System.out.println("L1 and L2 do not intersect!");
  }