2013-02-17 134 views
0

我有2組排序的鏈接列表A和B,並且我想要得到A * B的產品,這很容易,因爲它只是一個普通的嵌套for循環。 B呢?最初我想到了3嵌套for循環,但因爲我將使用指針,所以不可能使用B [i] [j]。任何想法傢伙?稀疏矩陣,鏈表的乘法

+0

我建議不要使用鏈表。爲什麼不使用標準稀疏矩陣表示之一? http://en.wikipedia.org/wiki/Sparse_matrix – 2013-02-17 12:17:18

+0

是的,但我有點想挑戰自我,並嘗試這樣做。我想到的唯一方法是先將它們存儲到數組中,然後轉移到鏈表中。有點毫無意義,如果我這樣做?還是我做這件事的唯一途徑?所以我想知道如果你們有更好的想法 – whyme 2013-02-17 12:21:23

+0

如果你使用鏈表,那麼你一定會挑戰自己,因爲它使矩陣乘法變得不可能! (至少,如果不將內容有效地傳輸到數組,然後再進行乘法運算,這是不可能的。) – 2013-02-17 12:30:17

回答

0

我有點想出了一個辦法。

while (A != NULL)  //your first list 
{     
         // store your row value and col in variables 
    while (B != NULL) // second list 
    { 
     if (colB == rowA) // you check if the b col is equals to a row, if yes you can 
         // start storing the values inside the 3rd link. 



    } 

}