我很难解决如何使用单链接列表作为底层数据结构来解决在Java中创建2D矩阵的问题。目标是让用户输入行数和列数,然后创建此矩阵,用户可以选择显示,插入,填充或计算行和列总和。矩阵中的每个节点都应该有一个右指针和一个向下指针(如果适用)。如果你可以帮助我,我真的很感激。
EX)2x3矩阵的显示功能看起来应该是这样的
00-> 01-> 02
10→11-> 12
00应指向10,01至11和02至12
希望视觉表现有助于
谢谢!
答案 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)