Java创建二维链表(数据结构)

Java创建二维链表(数据结构),java,data-structures,Java,Data Structures,因此,使用单链接的方法,我试图创建一个二维链表(矩阵)。矩阵将采用指定尺寸(ex 3x4矩阵)构建。下面是我的代码 class MLink{ public MLink nextCol; public MLink nextRow; public long data; //---------------------------------- MLink(long data){ this.data = data; nextCol = null; nextRow = null;

因此,使用单链接的方法,我试图创建一个二维链表(矩阵)。矩阵将采用指定尺寸(ex 3x4矩阵)构建。下面是我的代码

class MLink{
public MLink nextCol;
public MLink nextRow;
public long data;
//----------------------------------
MLink(long data){
    this.data = data;
    nextCol = null;
    nextRow = null;
}
//----------------------------------
public void displayLink(){
    System.out.print("{"+data+"} ");
}
//----------------------------------
}// end class MList

class MLinkList{
private MLink first;
private MLink current;
private int rows;
private int cols;
//----------------------------------
MLinkList(int rows, int cols){
    this.rows = rows;
    this.cols = cols;
    MLink newLink = new MLink(0);
    first = newLink;
    current = first;
    for(int i=0;i<rows;i++){
        current.nextRow = new MLink(0);
        for(int j=0;j<cols;j++){
            current.nextCol = new MLink(0);
        }
    }
}
//----------------------------------
public boolean isEmpty(){
    return (first==null);
}
//----------------------------------




}//end class MLinkList
public class MatrixListApp {

public static void main(String[] args) {
    MLinkList q = new MLinkList(3,4);

}

}
class-MLink{
公共MLink nextCol;
公共MLink nextRow;
公共长期数据;
//----------------------------------
MLink(长数据){
这个数据=数据;
nextCol=null;
nextRow=null;
}
//----------------------------------
public-void-displayLink(){
系统输出打印(“{”+数据+“}”);
}
//----------------------------------
}//末级MList
阶级工人{
私人MLink优先;
私有多链路电流;
私有int行;
私人公司;
//----------------------------------
MLinkList(整数行,整数列){
this.rows=行;
this.cols=cols;
MLink newLink=新MLink(0);
第一个=新链接;
电流=第一;

对于(int i=0;i您需要两个当前值,即当前行和当前列中的当前单元格


要单独移动列,您需要执行
currentCell=currentCell.nextCol;

如果您事先知道矩阵的大小,为什么要使用链表结构?我想只是为了练习。这是本书中的一个问题。我很确定数组会更合适。谢谢您的回答。我在采用sol方面取得了一些进展答案。但我似乎在制作5个单元格(当我放置2x2时),而不是4个。你能指出我弄乱的部分吗?MLink currentCol;for(int I=0;I