在Java中使用单链接列表的2D矩阵

时间:2014-03-28 08:08:08

标签: java matrix multidimensional-array singly-linked-list

我很难解决如何使用单链接列表作为底层数据结构来解决在Java中创建2D矩阵的问题。目标是让用户输入行数和列数,然后创建此矩阵,用户可以选择显示,插入,填充或计算行和列总和。矩阵中的每个节点都应该有一个右指针和一个向下指针(如果适用)。如果你可以帮助我,我真的很感激。

EX)2x3矩阵的显示功能看起来应该是这样的

00-> 01-> 02

10→11-> 12

00应指向10,01至11和02至12

希望视觉表现有助于

谢谢!

3 个答案:

答案 0 :(得分:0)

如果列表中的节点引用了两个以上的元素(上一个和下一个),则它不是列表,它是更复杂的数据结构。

对于您的问题,我建议您创建函数,它允许您将笛卡尔坐标转换为线性坐标。然后通过线性坐标将元素添加到列表中(我认为,ArrayList更适合您)。从技术上讲,您的矩阵将存储在一个列表中。

答案 1 :(得分:0)

应该可以在线轻松地实现简单的单链表。链表中需要进行一些修改(这里单独假设是指单向,向右和向下,但不是向左和向上):

 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)

答案 2 :(得分:0)