📄 unpersongroup.java
字号:
" 的节点");
}
}
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 + -