我很难解决如何使用单链表作为底层数据结构在Java中创建2D矩阵的问题。目标是让用户输入行数和列数,我们创建这个矩阵,用户可以选择显示、插入、填充或计算行和列和。矩阵中的每个节点都应该有一个右指针和一个向下指针(如果适用)。如果你能帮我,我将非常感激。
EX) 2x3矩阵的显示函数应该是这样的
00 -> 01 -> 02
10 -> 11 - 12>
00应指向10,01至11,02至12
希望视觉表现有所帮助
谢谢!
如果列表中的节点引用了两个以上的元素(previous和next),它就不是列表,它是更复杂的数据结构。
对于您的问题,我建议您创建函数,它允许您将笛卡尔坐标转换为线性坐标。然后通过线性坐标将元素添加到list中(我认为,ArrayList更适合你)。从技术上讲,您的矩阵将存储在单个列表中。
实现一个简单的单链表应该很容易在网上获得。在链表中需要做一些修改(假设这里的"单"表示单向,右和下,而不是左和上):
1. You'll need to two variables, to keep track of rows and columns.
2. You'll need a size variable, increment it after each element is added.
3. Modify the add method, so that whenever the size is > column (when a column fills up), point your down pointer of above node to the adding node, node[size-column].down = thisNode. (assuming you insert them column by column)
4. Display method should be pretty easy, iterate through column, if index > column, move to a new line.
5. Compute Row/Column sums by iterating through .next/ .down, (while hasnext, sum += next)
你可以在这里找到解决这个问题的代码:https://github.com/manoj7shekhawat/dataStructures/blob/master/Examples/Chap05/matrix/matrixApp.java