2017-06-15 148 views
-1

是否有可能使用此結構乘以2個稀疏矩陣?如果是的話,你能給我任何提示或正確的結構?稀疏矩陣乘法結構

typedef struct node{ 
    int column; 
    int value; 
    int row; 
    struct node *next; 
} element; 
+0

你應該可以使用* any * suitable * data-structure *來做到這一點。數據結構的實際實現細節(如使用鏈表)基本上是不相關的。 –

+0

這是很多內存使用情況。我建議你使用雙指針的單變量並訪問它們。使用'malloc'分配內存。 – tilz0R

+0

@ tilz0R - 整個想法是通過使用鏈表來節省內存 - 它用於稀疏矩陣 – 4386427

回答

0

是的,這可能是可能的,因爲它似乎有能力通過元素的鏈表來表示一個稀疏矩陣。每個元素將對應一個矩陣單元格,並攜帶該單元格的值。

它當然不以任何方式幫助實際乘法,這將涉及搜索這些元素的列表以便相乘和相加。

我確定還有其他更先進的數據結構可以使乘法實現更高效。

改進這個數據結構可能包括:通過行和/或列排序

  • 保留元素,允許一些優化搜索時。
  • 添加頂級Matrix結構可能是有意義的,例如它可以保持矩陣的整體尺寸(這將允許在乘法時更快地檢查尺寸兼容性)。