服务器连成局域网(华为od机考题)

avatar
作者
筋斗云
阅读量:0

一、题目

1.原题

在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。
请你统计机房中最大的局域网包含的服务器个数。

二、思路与代码过程

1.思路

输入n和m的大小,然后输入全是0和1的整数矩阵。

找到所有1的位置存入list,比较所有节点位置确认相邻关系(fX,bX,uY,dY),存入LinkedXY链表中,(xstack和ystack没啥实际作用,只是思维过程中的一个思路,可以删掉)。

把LinkedXY中的所有点遍历放入LinkNodejoin函数中,每一个节点都向四周查找能抵达的最多节点数,最后全部遍历完返回最大值。

LinkNodejoin函数中,每一次循环countStack都会刷新传入,在内循环中继承,每个节点都会对其相邻节点进行递归查找,直到达到LinkedXY的最后一个节点(结束条件存在问题,需要优化)。

2.代码过程

①main函数

public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.println("请输入n和m的大小:");         int n = sc.nextInt();         int m = sc.nextInt();         System.out.println("请依次输入矩阵网格的值:");         int[][] matrix = new int[n][m];         for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 matrix[i][j] = sc.nextInt();             }         }         SearchMax(matrix,n,m);     }

②SearchMax函数

private static void SearchMax(int[][] matrix, int n, int m) {         Stack<int[]> xstack = new Stack<>();//         Stack<int[]> ystack = new Stack<>();//         ArrayList<int []> list = new ArrayList<>();         ArrayList<LinkNode> LinkedXY = new ArrayList<>();//=============         //把所有有服务器的位置都找到,存入list         for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 if (matrix[i][j] == 1) {                     list.add(new int[]{i, j});                 }             }         }         if (list.size()==0) {             System.out.println("当前矩阵无服务器。");         }         //System.out.println(Arrays.deepToString(list.toArray()));         //无遗漏比较01 02 03 12 13 23         LinkNode xnode1 = null;         LinkNode xnode2 = null;         LinkNode ynode1 = null;         LinkNode ynode2 = null;         for (int i = 0; i < list.size(); i++) {             for (int j = i+1; j < list.size(); j++) {                 xnode1 = new LinkNode(list.get(i)[0],list.get(i)[1]);                 xnode2 = new LinkNode(list.get(j)[0],list.get(j)[1]);                 ynode1 = new LinkNode(list.get(i)[0],list.get(i)[1]);                 ynode2 = new LinkNode(list.get(j)[0],list.get(j)[1]);                  if (list.get(i)[0] == list.get(j)[0]&&Math.abs(list.get(i)[1]-list.get(j)[1])==1) {                                  boolean exist1 = false;                     boolean exist2 = false;                     for ( LinkNode currentNode : LinkedXY) {                         if (currentNode.getX()==xnode1.getX() && currentNode.getY()==xnode1.getY()){                             exist1 = true;                             xnode1=currentNode;                         }                         if (currentNode.getX()==xnode2.getX() && currentNode.getY()==xnode2.getY()){                             exist2 = true;                             xnode2=currentNode;                             break;                         }                     }                     if (!exist1) {                         LinkedXY.add(xnode1);                     }                     if (!exist2) {                         LinkedXY.add(xnode2);                     }                     //有相邻入栈                     xstack.push(list.get(i));                     //若xnode1横坐标与xnode2相等,纵坐标小于xnode2,则将xnode2设为xnode1的后方                     //setbXlink                     if(list.get(i)[1]<list.get(j)[1]) {                         xnode1.setbXlink(xnode2);                         xnode2.setfXlink(xnode1);                     }                     //若xnode1横坐标与xnode2相等,纵坐标大于xnode2,则将xnode2设为xnode1的前方                     //setfXlink                     else if(list.get(i)[1]>list.get(j)[1]) {                         xnode1.setfXlink(xnode2);                         xnode2.setbXlink(xnode1);                     }                     //将相邻数入栈                     xstack.push(list.get(j));                 } else if (list.get(i)[1] == list.get(j)[1]&&Math.abs(list.get(i)[0]-list.get(j)[0])==1) {                                          boolean exist1 = false;                     boolean exist2 = false;                     for ( LinkNode currentNode : LinkedXY) {                         if (currentNode.getX()==ynode1.getX() && currentNode.getY()==ynode1.getY()){                             exist1 = true;                             ynode1=currentNode;                         }                         if (currentNode.getX()==ynode2.getX() && currentNode.getY()==ynode2.getY()){                             exist2 = true;                             ynode2=currentNode;                             break;                         }                     }                     if (!exist1) {                         LinkedXY.add(ynode1);                     }                     if (!exist2) {                         LinkedXY.add(ynode2);                     }                     //有相邻入栈                     ystack.push(list.get(i));                     //若xnode1纵坐标与xnode2相等,横坐标大于xnode2,则将xnode2设为xnode1的上方                     //setuYlink                     if(list.get(i)[0]>list.get(j)[0]) {                         ynode1.setuYlink(ynode2);                     }                     //若xnode1纵坐标与xnode2相等,横坐标小于xnode2,则将xnode2设为xnode1的下方                     //setdYlink                     else if(list.get(i)[0]<list.get(j)[0]) {                         ynode1.setdYlink(ynode2);                     }                     //将相邻数入栈                     ystack.push(list.get(j));                 }             }         }         if (xstack.isEmpty()&& ystack.isEmpty()){             System.out.println("无相邻服务器,最大局域网含1个服务器。");         }         int MaxSize = 0 ;         for (int i = 0; i < LinkedXY.size(); i++) {             Stack<LinkNode> countStack = new Stack<>();             LinkNodejoin(LinkedXY,LinkedXY.get(i),countStack);             MaxSize = Math.max(MaxSize,LinkNodejoin(LinkedXY,LinkedXY.get(i), countStack));         }         System.out.println("最大长度为:"+MaxSize);     }

③ LinkNodejoin函数

private static int LinkNodejoin(ArrayList<LinkNode> LinkedXY,LinkNode CountcurrentNode, Stack<LinkNode> countStack) {         //当前countStack不含有之前已经存入的节点         if (!countStack.contains(CountcurrentNode)){             System.out.println("当前countStack不含有该节点,加入进来啦!");             countStack.push(CountcurrentNode);         }         if (CountcurrentNode==LinkedXY.get(LinkedXY.size()-1)){             return countStack.size();         }             if (CountcurrentNode.fxlink!=null&&!countStack.contains(CountcurrentNode.fxlink)){                 LinkNodejoin(LinkedXY, CountcurrentNode.getfXlink(),countStack);             }             if (CountcurrentNode.bxlink!=null&&!countStack.contains(CountcurrentNode.bxlink)){                 LinkNodejoin(LinkedXY, CountcurrentNode.getbXlink(),countStack);             }             if (CountcurrentNode.uylink!=null&&!countStack.contains(CountcurrentNode.uylink)){                 LinkNodejoin(LinkedXY, CountcurrentNode.getuYlink(),countStack);             }             if (CountcurrentNode.dylink!=null&&!countStack.contains(CountcurrentNode.dylink)){                 LinkNodejoin(LinkedXY, CountcurrentNode.getdYlink(),countStack);             }             return countStack.size();     }

④LinkNode类

public static class LinkNode{         int x;         int y;         LinkNode fxlink;//前         LinkNode bxlink;//后         LinkNode uylink;//上         LinkNode dylink;//下         //构造函数         public LinkNode (int x, int y) {             this.x = x;             this.y = y;             this.fxlink = null;             this.bxlink = null;             this.uylink = null;             this.dylink = null;          }         //方法体         //获得x坐标         public int getX() {             return x;         }         //设置x坐标//无用         public void setX(int x) {             this.x = x;         }         //获得y坐标         public int getY() {             return y;         }         //设置y坐标//无用         public void setY(int y) {             this.y = y;         }         //获取横f向链接         public LinkNode getfXlink() {             return fxlink;         }         //设置横f向链接         public void setfXlink(LinkNode fxlink) {             this.fxlink = fxlink;         }         //获取横b向链接         public LinkNode getbXlink() {             return bxlink;         }         //设置横b向链接         public void setbXlink(LinkNode bxlink) {             this.bxlink = bxlink;         }          //获取纵u向链接         public LinkNode getuYlink() {             return uylink;         }         //设置纵u向链接         public void setuYlink(LinkNode uylink) {             this.uylink = uylink;         }         //获取纵d向链接         public LinkNode getdYlink() {             return dylink;         }         //设置纵d向链接         public void setdYlink(LinkNode dylink) {             this.dylink = dylink;         }          //获得横f向链接坐标(返回string)         public String getfXlinkCoordinates(){             if (fxlink != null) {                 return "横前向链接的坐标:("+fxlink.getX()+","+fxlink.getY();             } else {                 return "无横前向链接";             }         }         //获得横b向链接坐标         public String getbXlinkCoordinates(){             if (bxlink != null) {                 return "横后向链接的坐标:("+bxlink.getX()+","+bxlink.getY();             } else {                 return "无横后向链接";             }         }         //获得纵u向链接坐标         public String getuYlinkCoordinates(){             if (uylink != null) {                 return "纵上向链接的坐标:("+uylink.getX()+","+uylink.getY();             }else {                 return "无纵上向链接";             }         }         //获得纵d向链接坐标         public String getdYlinkCoordinates(){             if (uylink != null) {                 return "纵下向链接的坐标:("+dylink.getX()+","+dylink.getY();             }else {                 return "无纵下向链接";             }         }         //自定义输出形式         public String toString(){             return "LinkNode{坐标=(" + x + ", " + y + ")" +                     ", 横前向链接=" + (fxlink != null ? "(" + fxlink.x + ", " + fxlink.y + ")" : "null") +                     ", 横后向链接=" + (bxlink != null ? "(" + bxlink.x + ", " + bxlink.y + ")" : "null") +                     ", 纵上向链接=" + (uylink != null ? "(" + uylink.x + ", " + uylink.y + ")" : "null") +                     ", 纵下向链接=" + (dylink != null ? "(" + dylink.x + ", " + dylink.y + ")" : "null") + "}\n";         }     }

三、运行结果

1.运行截图


2.带数据分析运行结果

[0,0]:0 [0,1]:1 [0,2]:1 [0,3]:0 
[1,0]:1 [1,1]:1 [1,2]:1 [1,3]:0 
[2,0]:1 [2,1]:1 [2,2]:0 [2,3]:0 
[3,0]:1 [3,1]:0 [3,2]:1 [3,3]:1 
[LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}
, LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}
, LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}
, LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}
, LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}
, LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}
, LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}
, LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}
, LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}
, LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}
]
LinkNodejoin:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

uy:null
dy:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前CountcurrentNode为LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

LinkNodejoin:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

bx:null
uy:null
dy:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

fx:null
bx:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

uy:null
dy:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前CountcurrentNode为LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

bx:null
uy:null
dy:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

LinkNodejoin:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

uy:null
dy:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前CountcurrentNode为LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

fx:LinkNode{坐标=(0, 1), 横前向链接=null, 横后向链接=(0, 2), 纵上向链接=null, 纵下向链接=(1, 1)}

bx:null
uy:null
dy:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(0, 2), 横前向链接=(0, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=(1, 2)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkNodejoin:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

bx:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(1, 2), 横前向链接=(1, 1), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

fx:null
bx:LinkNode{坐标=(1, 1), 横前向链接=(1, 0), 横后向链接=(1, 2), 纵上向链接=null, 纵下向链接=(2, 1)}

uy:null
dy:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前CountcurrentNode为LinkNode{坐标=(1, 0), 横前向链接=null, 横后向链接=(1, 1), 纵上向链接=null, 纵下向链接=(2, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
fxlinkLinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkNodejoin:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前CountcurrentNode为LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
dylinkLinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

fx:LinkNode{坐标=(2, 0), 横前向链接=null, 横后向链接=(2, 1), 纵上向链接=null, 纵下向链接=(3, 0)}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(2, 1), 横前向链接=(2, 0), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

fx:null
bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 0), 横前向链接=null, 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:null
bx:LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
bxlinkLinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

fx:null
bx:LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

1---------------------------------------
LinkNodejoin:LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

当前countStack不含有该节点,加入进来啦!
fx:LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkNodejoin:LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

fx:LinkNode{坐标=(3, 2), 横前向链接=null, 横后向链接=(3, 3), 纵上向链接=null, 纵下向链接=null}

bx:null
uy:null
dy:null
当前CountcurrentNode为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

LinkedXY的最后一个为LinkNode{坐标=(3, 3), 横前向链接=(3, 2), 横后向链接=null, 纵上向链接=null, 纵下向链接=null}

最大长度为:8
 

3.带数据分析完整代码

import javax.naming.directory.SearchControls; import java.util.*;  public class test25 {     public static void main(String[] args) {         // /*         Scanner sc = new Scanner(System.in);         System.out.println("请输入n和m的大小:");         int n = sc.nextInt();         int m = sc.nextInt();         System.out.println("请依次输入矩阵网格的值:");         int[][] matrix = new int[n][m];         for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 matrix[i][j] = sc.nextInt();             }         }         //*/         /*         简单测试:         int n = 3;         int m = 2;         int[][] matrix = {{0,1},{1,0},{1,1}};         //int[][] matrix = {{0,1},{1,0},{0,1}};//无相邻         */         //复杂测试:         /*         int n = 4;         int m = 4;         int[][] matrix = {{0,1,1,0},//00 01 02 03                 {1,1,1,0},//10 11 12 13                 {1,1,0,0},//20 21 22 23                 {1,0,1,1}};//30 31 32 33          */         for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 System.out.print( "["+i+","+j+"]:"+matrix[i][j]+" ");             }             System.out.println();         }         //System.out.println(Arrays.deepToString(matrix));           SearchMax(matrix,n,m);      }      private static void SearchMax(int[][] matrix, int n, int m) {         Stack<int[]> xstack = new Stack<>();//         Stack<int[]> ystack = new Stack<>();//         ArrayList<int []> list = new ArrayList<>();         ArrayList<LinkNode> LinkedXY = new ArrayList<>();//=============         //把所有有服务器的位置都找到,存入list         for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 if (matrix[i][j] == 1) {                     list.add(new int[]{i, j});                 }             }         }         if (list.size()==0) {             System.out.println("当前矩阵无服务器。");         }         //System.out.println(Arrays.deepToString(list.toArray()));         //无遗漏比较01 02 03 12 13 23         LinkNode xnode1 = null;         LinkNode xnode2 = null;         LinkNode ynode1 = null;         LinkNode ynode2 = null;         for (int i = 0; i < list.size(); i++) {             for (int j = i+1; j < list.size(); j++) {                 //System.out.println("一 "+Arrays.toString(list.get(i)));                 //System.out.println("二 "+Arrays.toString(list.get(j))+"\n");                  xnode1 = new LinkNode(list.get(i)[0],list.get(i)[1]);                 xnode2 = new LinkNode(list.get(j)[0],list.get(j)[1]);                 ynode1 = new LinkNode(list.get(i)[0],list.get(i)[1]);                 ynode2 = new LinkNode(list.get(j)[0],list.get(j)[1]);                  if (list.get(i)[0] == list.get(j)[0]&&Math.abs(list.get(i)[1]-list.get(j)[1])==1) {                     // /*                     boolean exist1 = false;                     boolean exist2 = false;                     for ( LinkNode currentNode : LinkedXY) {                         if (currentNode.getX()==xnode1.getX() && currentNode.getY()==xnode1.getY()){                             exist1 = true;                             xnode1=currentNode;                         }                         if (currentNode.getX()==xnode2.getX() && currentNode.getY()==xnode2.getY()){                             exist2 = true;                             xnode2=currentNode;                             break;                         }                     }                     if (!exist1) {                         LinkedXY.add(xnode1);                     }                     if (!exist2) {                         LinkedXY.add(xnode2);                     }                     // */                     //有相邻入栈                     xstack.push(list.get(i));                     //System.out.println("横相邻的有:");                     //System.out.println("三 "+list.get(i)[0]+"  "+list.get(i)[1]);                     //System.out.println("四 "+list.get(j)[0]+"  "+list.get(j)[1]);                      //若xnode1横坐标与xnode2相等,纵坐标小于xnode2,则将xnode2设为xnode1的后方                     //setbXlink                     if(list.get(i)[1]<list.get(j)[1]) {                         xnode1.setbXlink(xnode2);                         xnode2.setfXlink(xnode1);//?                         //LinkedXY.add(xnode1);                         //System.out.println(LinkedXY);                     }                     //若xnode1横坐标与xnode2相等,纵坐标大于xnode2,则将xnode2设为xnode1的前方                     //setfXlink                     else if(list.get(i)[1]>list.get(j)[1]) {                         xnode1.setfXlink(xnode2);                         xnode2.setbXlink(xnode1);                         //LinkedXY.add(xnode1);                         //System.out.println(LinkedXY);                     }                     //将相邻数入栈                     xstack.push(list.get(j));                 } else if (list.get(i)[1] == list.get(j)[1]&&Math.abs(list.get(i)[0]-list.get(j)[0])==1) {                     // /*                     boolean exist1 = false;                     boolean exist2 = false;                     for ( LinkNode currentNode : LinkedXY) {                         if (currentNode.getX()==ynode1.getX() && currentNode.getY()==ynode1.getY()){                             exist1 = true;                             ynode1=currentNode;                         }                         if (currentNode.getX()==ynode2.getX() && currentNode.getY()==ynode2.getY()){                             exist2 = true;                             ynode2=currentNode;                             break;                         }                     }                     if (!exist1) {                         LinkedXY.add(ynode1);                     }                     if (!exist2) {                         LinkedXY.add(ynode2);                     }                     // */                     //有相邻入栈                     ystack.push(list.get(i));                     //System.out.println("纵相邻的有:");                     //System.out.println("五 "+list.get(i)[0]+"  "+list.get(i)[1]);                     //System.out.println("六 "+list.get(j)[0]+"  "+list.get(j)[1]);                       //若xnode1纵坐标与xnode2相等,横坐标大于xnode2,则将xnode2设为xnode1的上方                     //setuYlink                     if(list.get(i)[0]>list.get(j)[0]) {                         ynode1.setuYlink(ynode2);                         //LinkedXY.add(ynode1);                         //System.out.println(LinkedXY);                     }                     //若xnode1纵坐标与xnode2相等,横坐标小于xnode2,则将xnode2设为xnode1的下方                     //setdYlink                     else if(list.get(i)[0]<list.get(j)[0]) {                         ynode1.setdYlink(ynode2);                         //LinkedXY.add(ynode1);                         //System.out.println(LinkedXY);                     }                     //将相邻数入栈                     ystack.push(list.get(j));                 }             }         }         if (xstack.isEmpty()&& ystack.isEmpty()){             System.out.println("无相邻服务器,最大局域网含1个服务器。");         }         System.out.println(LinkedXY);         int MaxSize = 0 ;         for (int i = 0; i < LinkedXY.size(); i++) {             Stack<LinkNode> countStack = new Stack<>();             LinkNodejoin(LinkedXY,LinkedXY.get(i),countStack);             MaxSize = Math.max(MaxSize,LinkNodejoin(LinkedXY,LinkedXY.get(i), countStack));         }         System.out.println("最大长度为:"+MaxSize);     }      private static int LinkNodejoin(ArrayList<LinkNode> LinkedXY,LinkNode CountcurrentNode, Stack<LinkNode> countStack) {         //CountcurrentNode = LinkedXY.get(i);         System.out.println("LinkNodejoin:"+CountcurrentNode);         //当前countStack不含有之前已经存入的节点         if (!countStack.contains(CountcurrentNode)){             System.out.println("当前countStack不含有该节点,加入进来啦!");             countStack.push(CountcurrentNode);         }             System.out.println("fx:"+CountcurrentNode.getfXlink());             System.out.println("bx:"+CountcurrentNode.getbXlink());             System.out.println("uy:"+CountcurrentNode.getuYlink());             System.out.println("dy:"+CountcurrentNode.getdYlink());              System.out.println("当前CountcurrentNode为"+CountcurrentNode);             System.out.println("LinkedXY的最后一个为"+LinkedXY.get(LinkedXY.size()-1));         if (CountcurrentNode==LinkedXY.get(LinkedXY.size()-1)){             return countStack.size();         }         System.out.println("1---------------------------------------");             if (CountcurrentNode.fxlink!=null&&!countStack.contains(CountcurrentNode.fxlink)){                 System.out.println("fxlink" +CountcurrentNode.fxlink);                 LinkNodejoin(LinkedXY, CountcurrentNode.getfXlink(),countStack);             }             if (CountcurrentNode.bxlink!=null&&!countStack.contains(CountcurrentNode.bxlink)){                 System.out.println("bxlink" +CountcurrentNode.bxlink);                 LinkNodejoin(LinkedXY, CountcurrentNode.getbXlink(),countStack);             }             if (CountcurrentNode.uylink!=null&&!countStack.contains(CountcurrentNode.uylink)){                 System.out.println("uylink" +CountcurrentNode.uylink);                 LinkNodejoin(LinkedXY, CountcurrentNode.getuYlink(),countStack);             }             if (CountcurrentNode.dylink!=null&&!countStack.contains(CountcurrentNode.dylink)){                 System.out.println("dylink" +CountcurrentNode.dylink);                 LinkNodejoin(LinkedXY, CountcurrentNode.getdYlink(),countStack);             }             //System.out.println("2---------------------------------------");             //System.out.println("当前countStack大小为:"+countStack.size());             return countStack.size();     }      public static class LinkNode{         int x;         int y;         LinkNode fxlink;//前         LinkNode bxlink;//后         LinkNode uylink;//上         LinkNode dylink;//下         //构造函数         public LinkNode (int x, int y) {             this.x = x;             this.y = y;             this.fxlink = null;             this.bxlink = null;             this.uylink = null;             this.dylink = null;          }         //方法体         //获得x坐标         public int getX() {             return x;         }         //设置x坐标//无用         public void setX(int x) {             this.x = x;         }         //获得y坐标         public int getY() {             return y;         }         //设置y坐标//无用         public void setY(int y) {             this.y = y;         }         //获取横f向链接         public LinkNode getfXlink() {             return fxlink;         }         //设置横f向链接         public void setfXlink(LinkNode fxlink) {             this.fxlink = fxlink;         }         //获取横b向链接         public LinkNode getbXlink() {             return bxlink;         }         //设置横b向链接         public void setbXlink(LinkNode bxlink) {             this.bxlink = bxlink;         }          //获取纵u向链接         public LinkNode getuYlink() {             return uylink;         }         //设置纵u向链接         public void setuYlink(LinkNode uylink) {             this.uylink = uylink;         }         //获取纵d向链接         public LinkNode getdYlink() {             return dylink;         }         //设置纵d向链接         public void setdYlink(LinkNode dylink) {             this.dylink = dylink;         }          //获得横f向链接坐标(返回string)         public String getfXlinkCoordinates(){             if (fxlink != null) {                 return "横前向链接的坐标:("+fxlink.getX()+","+fxlink.getY();             } else {                 return "无横前向链接";             }         }         //获得横b向链接坐标         public String getbXlinkCoordinates(){             if (bxlink != null) {                 return "横后向链接的坐标:("+bxlink.getX()+","+bxlink.getY();             } else {                 return "无横后向链接";             }         }         //获得纵u向链接坐标         public String getuYlinkCoordinates(){             if (uylink != null) {                 return "纵上向链接的坐标:("+uylink.getX()+","+uylink.getY();             }else {                 return "无纵上向链接";             }         }         //获得纵d向链接坐标         public String getdYlinkCoordinates(){             if (uylink != null) {                 return "纵下向链接的坐标:("+dylink.getX()+","+dylink.getY();             }else {                 return "无纵下向链接";             }         }         //自定义输出形式         public String toString(){             return "LinkNode{坐标=(" + x + ", " + y + ")" +                     ", 横前向链接=" + (fxlink != null ? "(" + fxlink.x + ", " + fxlink.y + ")" : "null") +                     ", 横后向链接=" + (bxlink != null ? "(" + bxlink.x + ", " + bxlink.y + ")" : "null") +                     ", 纵上向链接=" + (uylink != null ? "(" + uylink.x + ", " + uylink.y + ")" : "null") +                     ", 纵下向链接=" + (dylink != null ? "(" + dylink.x + ", " + dylink.y + ")" : "null") + "}\n";         }     }   } 

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!