用十字链表表示一个有K个非0元素的m×n的稀疏矩阵,则其总的结点数为(43)。
A./n
B./2
C.m+n
D.m+n+k
用十字链表表示一个有K个非0元素的m×n的稀疏矩阵,则其总的结点数为(43)。
A./n
B./2
C.m+n
D.m+n+k
A、十字链表的节点只需要记录非零元素的值,不需要记录它们在矩阵中的位置。
B、一个全由非零元素组成的矩阵,若使用十字链表表示,也将获得效率的提升。
C、十字链表的每个节点只有一个指向后继元素的指针。
D、应用十字链表做矩阵乘法时,时间复杂度是O((ta + tb) * p * n)。(假设矩阵A乘以矩阵B,A为p*m的矩阵,B为m*n的矩阵,A中行向量的非零元素个数最多为ta,B中列向量的非零元素个数最多为tb)
E、十字链表的节点记录了非零元素的值及它们在矩阵中的位置。
F、十字链表可以应用于稀疏矩阵的表示。
稀疏矩阵相加。两个稀疏矩阵A和B采用十字链表方式存储,计算C=A+B,C采用十字链表方式存储。
算法分析:根据矩阵相加的法则,C中的非零元素cij只可能有3种情况:aij+bij,aij(bij=0),bij(aij=0)。因此,当B加到A上时,对A的十字链表来说,或者是改变结点的val域值aij+bij≠0,或者不变(bij=0),或者插入一个新结点(aij=0),还可能是删除一个结点(aij+bij=0)。整个运算可从矩阵的第一行逐步进行。对每一行都从行表头出发分别找到A和B在该行中的第一个非零元素结点后开始比较,然后按以下4种不同情况分别处理(假设pa和pb分别指向A和B的十字链表中行值相同的两个结点)。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!