⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unpersongroup.java

📁 本软件是使用java 开发的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                                 " 的节点");
      }
    }
    if (drawMode == 2) {
      g.setColor(Color.lightGray);
      g.fillRect(10, 10, 450, 600);
      for (int i = 0; i < totalLinksLa; i++) {
        drawLink(g, i, 1);
      }
      for (int j = 0; j < totalLinksLb; j++) {
        drawLink(g, j, 2);
      }
      for (int k = 0; k < lcCount; k++) {
        drawLink(g, k, 3);
      }
      if (label4 != 1) {
        unLinkList.text1.setText(String.valueOf(linkArrayLa[laCount].persData.
                                                getHeight()) + ", 指向一个值为 " +
                                 String.valueOf(linkArrayLa[laCount +
                                                1].persData.getHeight()) +
                                 " 的节点");
        unLinkList.text2.setText(String.valueOf(linkArrayLb[lbCount].persData.
                                                getHeight()) + ", 指向一个值为 " +
                                 String.valueOf(linkArrayLb[lbCount +
                                                1].persData.getHeight()) +
                                 " 的节点");
        unLinkList.text3.setText(" NULL, 指向一个值为 " +
                                 String.valueOf(linkArrayLa[laCount].persData.
                                                getHeight()) + " 的节点");
        unLinkList.text4.setText(" NULL, 指向一个值为 " +
                                 String.valueOf(linkArrayLa[laCount].persData.
                                                getHeight()) + " 的节点");
        unLinkList.text5.setText(" NULL, 指向一个值为 " +
                                 String.valueOf(linkArrayLb[lbCount].persData.
                                                getHeight()) + " 的节点");
        unLinkList.text6.setText(" NULL, 指向一个值为 " +
                                 String.valueOf(linkArrayLa[laCount].persData.
                                                getHeight()) + " 的节点");
      }
    }

    if (codePart != 9) {
      drawArrow(g, laCount - 1, 1, false);
      drawArrow(g, laCount, 1, true);
      drawArrow(g, lbCount - 1, 2, false);
      drawArrow(g, lbCount, 2, true);
      drawArrow(g, lcCount - 1, 3, true);
      if (laCount < this.totalLinksLa - 1) {
        int la = linkArrayLa[laCount].persData.getHeight();

        int la1 = linkArrayLa[laCount + 1].persData.getHeight();

        unLinkList.text1.setText(String.valueOf(la) + ", 指向一个值为 " +
                                 String.valueOf(la1) + " 的节点");

      }
      else if (laCount == this.totalLinksLa - 1)

      {
        unLinkList.text1.setText(String.valueOf(linkArrayLa[laCount].persData.
                                                getHeight()) + ", 指向 NULL");

      }
      if (lbCount < this.totalLinksLb - 1) {
        int lb = linkArrayLb[lbCount].persData.getHeight();

        int lb1 = linkArrayLb[lbCount + 1].persData.getHeight();

        unLinkList.text2.setText(String.valueOf(lb) + ", 指向一个值为 " +
                                 String.valueOf(lb1) + " 的节点");
      }
      else if (lbCount == this.totalLinksLb - 1) {
        unLinkList.text2.setText(String.valueOf(linkArrayLb[lbCount].persData.
                                                getHeight()) + ", 指向 NULL");

      }
      if (laCount < totalLinksLa && lbCount < totalLinksLb) {
        if (label1 == 1) {
          unLinkList.text3.setText(String.valueOf(linkArrayLc[lcCount -
                                                  1].persData.
                                                  getHeight()) + ", 指向一个值为 " +
                                   String.valueOf(linkArrayLa[laCount].persData.
                                                  getHeight()) + " 的节点");
        }

        if (label2 == 1) {
          unLinkList.text3.setText(String.valueOf(linkArrayLc[lcCount -
                                                  1].persData.
                                                  getHeight()) + ", 指向一个值为 " +
                                   String.valueOf(linkArrayLb[lbCount].persData.
                                                  getHeight()) + " 的节点");
        }
      }

    }
    if (codePart >= 6 || label3 == 2 && codePart != 7 && codePart != 9) {
      if (laCount >= totalLinksLa) {
        unLinkList.text3.setText(String.valueOf(linkArrayLc[lcCount -
                                                1].persData.
                                                getHeight()) + ", 指向  NULL ");

        unLinkList.text1.setText("  NULL , 指向 NULL ");

      }
      if (lbCount >= totalLinksLb) {
        unLinkList.text3.setText(String.valueOf(linkArrayLc[lcCount -
                                                1].persData.
                                                getHeight()) + ", 指向 NULL ");

        unLinkList.text2.setText("  NULL , 指向 NULL ");

      }

    }
    drawMode = 2;
    if (label1 == 2) {
      for (int i = label3; i < lcCount; i++) {
        drawLink(g, i - 1, 3);
      }
      drawArrow(g, laCount - 1, 1, false);
      drawArrow(g, lbCount - 1, 2, false);
      drawArrow(g, label3 - 2, 3, false);
      drawArrow(g, laCount, 1, true);
      drawArrow(g, lbCount, 2, true);
      drawArrow(g, label3 - 1, 3, true);
      unLinkList.text3.setText(String.valueOf(linkArrayLc[label3 -
                                              1].persData.
                                              getHeight()) + ", 指向一个值为 " +
                               String.valueOf(linkArrayLa[laCount].persData.
                                              getHeight()) + " 的节点");

      return;
    }
    if (label2 == 2) {
      for (int j = label3; j < lcCount; j++) {
        drawLink(g, j - 1, 3);
      }
      drawArrow(g, laCount - 1, 1, false);
      drawArrow(g, lbCount - 1, 2, false);
      drawArrow(g, label3 - 2, 3, false);
      drawArrow(g, laCount, 1, true);
      drawArrow(g, lbCount, 2, true);
      drawArrow(g, label3 - 1, 3, true);
      unLinkList.text3.setText(String.valueOf(linkArrayLc[label3 -
                                              1].persData.
                                              getHeight()) + ", 指向一个值为 " +
                               String.valueOf(linkArrayLb[lbCount].persData.
                                              getHeight()) + " 的节点");

    }
  }

  public void union() {
    label4 = 1;
    switch (codePart) {
      case 0:
        codePanel.highlight(4);
        if (laCount < totalLinksLa && lbCount < totalLinksLb) {
          codePart = 1;
        }
        else {
          codePart = 6;
        }
        break;
      case 1:
        codePanel.highlight(6);
        if (linkArrayLa[laCount].persData.getHeight() ==
            linkArrayLb[lbCount].persData.getHeight()) {
          codePart = 2;
        }
        else
          codePart = 3;
        break;
      case 2:
        codePanel.highlight(7);
        linkArrayLc[lcCount] = linkArrayLa[laCount];
        laCount++;
        lbCount++;
        lcCount++;
        if (laCount >= this.totalLinksLa || lbCount >= this.totalLinksLb)
          label3 = 2;

        label1 = label2 = 1;
        codePart = 7;
        codePanel.highlight(8);
        break;
      case 3:
        codePanel.highlight(9);
        if (linkArrayLa[laCount].persData.getHeight() <
            linkArrayLb[lbCount].persData.getHeight()) {
          codePart = 4;
        }
        else {
          codePart = 5;
        }
        break;
      case 4:
        codePanel.highlight(10);
        linkArrayLc[lcCount] = linkArrayLa[laCount];
        laCount++;
        lcCount++;
        if (laCount >= this.totalLinksLa)
          label3 = 2;
        label1 = 1;
        label2 = 0;
        codePart = 7;
        break;
      case 5:
        codePanel.highlight(11);
        linkArrayLc[lcCount] = linkArrayLb[lbCount];
        lbCount++;
        lcCount++;
        label2 = 1;
        if (lbCount >= this.totalLinksLb)
          label3 = 2;
        label1 = 0;
        codePart = 7;
        break;
      case 6:
        codePanel.highlight(12);
        codePart = 8;
        break;
      case 8:
        codePanel.highlight(13);
        if (laCount >= totalLinksLa)
          codePart = 10;
        else
          codePart = 11;
        break;
      case 10:
        codePanel.highlight(14);
        label3 = lcCount;
        for (int i = lbCount; i < totalLinksLb; i++) {
          linkArrayLc[lcCount] = linkArrayLb[i];
          lcCount++;
        }
        label2 = 2;
        codePart = 9;
        break;
      case 11:
        codePanel.highlight(15);
        label3 = lcCount;
        for (int j = laCount; j < totalLinksLa; j++) {
          linkArrayLc[lcCount] = linkArrayLa[j];
          lcCount++;
        }
        label1 = 2;
        codePart = 9;
        break;
      case 7:
        codePanel.highlight(12);
        codePart = 0;
        break;
      case 9:
        codePanel.highlight(16);
        ///执行到该步表示链表合并已经完成,变量dongFlag变为true
        doneFlag = true;
        break;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -