稀疏矩陣加法,用十字鍊錶實現C A B

2021-08-18 23:41:24 字數 1084 閱讀 7727

輸入兩個稀疏矩陣,輸出它們相加的結果。

第一行輸入四個正整數,分別是兩個矩陣的行m、列n、第乙個矩陣的非零元素的個數t1和第二個矩陣的非零元素的個數t2。

接下來的t1+t2行是三元組,分別是第乙個矩陣的資料和第二個矩陣的資料。三元組的第乙個元素表示行號,第二個元素表示列號,第三個元素是該項的值。

輸出相加後的矩陣三元組。

#include #includetypedef struct node  

node,*lnode;

typedef struct cross

cross, *lcross;

void init(lcross m)

for(i=1; i<=m->ca; i++)

}

void create(lcross m)

else

else if(temp->j < p->j && temp->right->j>p->j)

else if(temp==m->rh[p->i] && temp->j>p->j)

} }

if(m->ch[p->j] == null|| m->ch[p->j]->i>(p->i))

else

} }

} void plustoa(lcross a,lcross b)

if(b->rh[i]==null)continue;

for(temp1=b->rh[i];; temp1=temp1->right)

else if(temp2==a->rh[i] && temp1->jj)

else if((temp2->right == null || temp2->right->j>temp1->j) && temp1->j>temp2->j)

} if(temp1->right == null) break;

} }

} }

void printcross(lcross a)

} }

int main()

十字鍊錶 稀疏矩陣

include includetypedef struct olnode olnode,olink typedef struct 行和列煉表頭指標向量基址,由creatsmatrix ol 分配 crosslist 初始化m crosslist型別的變數必須初始化,否則建立 複製矩陣將出錯 bool...

稀疏矩陣相加(十字鍊錶儲存)

標頭檔案 linklist.h inte ce for the linklist class.if defined afx linklist h 0f0cca3e d836 4bb4 9030 b548558fc57e included define afx linklist h 0f0cca3e ...

稀疏矩陣的建立 十字鍊錶

一 概念 既然要用鍊錶節點來模擬矩陣中的非零元素,肯定需要如下5個元素 row,col,val,down,right 其中 row 矩陣中的行。col 矩陣中的列。val 矩陣中的值。right 指向右側的乙個非零元素。down 指向下側的乙個非零元素。現在我們知道單個節點該如何表示了,那麼矩陣中同...