题目内容 (请给出正确答案)
[主观题]

设稀疏矩阵M采用三元组顺序表进行了压缩存储,请写出稀疏矩阵M的转置算法。

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“设稀疏矩阵M采用三元组顺序表进行了压缩存储,请写出稀疏矩阵M…”相关的问题

第1题

对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有()个零元素。
A.8

B.10

C.72

D.74

点击查看答案

第2题

给定如下稀疏矩阵,采用三元组顺序表进行压缩存储(数组0号单元存放矩阵总体信息),其三元组顺序表是_______。

A、

B、

C、

D、

点击查看答案

第3题

对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是()。
A.(10,8,7)

B.(10,8,6)

C.(7,10,8)

D.(7,8,10)

点击查看答案

第4题

对稀疏矩阵进行压缩存储方法一般有两种,分别为三元组顺序表和十字链表
点击查看答案

第5题

阅读以下说明和C函数,将应填入(n)处的字句写在对应栏内。

[说明]

若一个矩阵中的非零元素数目很少且分布没有规律,则称之为稀疏矩阵。对m行n列的稀疏矩阵M,进行转置运算后得到n行m列的矩阵MT,如图3-1所示

为了压缩稀疏矩阵的存储空间,用三元组(即元素所在的行号、列号和元素值、表示稀疏矩阵中的一个非零元素,再用一维数组逐行存储稀疏矩阵中的所有非零元素也称为三元组顺序表)。例如,图3-1所示的矩阵M相应的三元组顺序表如表3-1所示。其转置矩阵MT的三元组顺序表如表3-2所示。

函数TransposeMatrix(Matrix M)的功能是对用三元组顺序表表示的稀疏矩阵M进行转置运算。

对M实施转置运算时,为了将M中的每个非零元素直接存入其转置矩阵MT三元组顺序表的相应位置,需先计算M中每一列非零元素的数目(即MT中每一行非零元素的数目),并记录在向量num中;然后根据以下关系,计算出矩阵M中每列的第一个非零元素在转置矩阵MT三元组顺序表中的位置:

cpot[0]=0

cpot[j]=cpot[j-1]+num[j-1]) /*j为列号*/

类型ElemType,Triple和Matrix定义如下:

typedef int ElemType;

typedef struct{ /*三元组类型*/

int r,c; /*矩阵元素的行号、列号*/

ElemType e; /*矩阵元素的值*/

}Triple;

typedef struct{ /*矩阵的元组三元组顺序表存储结构*/

int rows,cols,elements; /*矩阵的行数、列数和非零元素数目*/

Triple data[MAXSIZE];

}Matrix;

[C语言函数]

int TransposeMatrix(Matrix M)

{

int j,q,t;

int *num, *cpot;

Matrix MT; /*MT是M的转置矩阵*/

num=(int*)malloc(M.cols*sizeof(int));

cpot=(int*)malloc(M.cols*sizeof(int));

if(!num ||cpot)

return ERROR;

MT.rows=(1); /*设置转置矩阵MT行数、列数和非零元素数目*/

MT.cols=(2);

MT.elements=M.elements;

if(M.elements>0){

for (q=0 ; q<M. cols ; q++)

num[q]=0;

for (t=0; t<M.elements;++t) /*计算矩阵M中每一列非零元素数目*/

num [M.data[t].c]++;

/*计算矩阵M中每列第一个非零元素在其转置矩阵三元组顺序表中的位置*/

(3);

for(j=1;j<M.cols;j++)

cpot[j]=(4);

/*以下代码完成转置矩阵MT三元组顺序表元素的设置*/

for(t=0;t<M.elements;t++){

j=(5); /*取矩阵M的一个非零元素的列号存入j*/

/*q为该非零元素在转置矩阵MT三元组顺序表中的位置(下标)*/

q=cpot[j];

MT.data[q].r=M.data[t].c;

MT.data[q].c=M.data[t].r;

MT.data[q].e=M.data[t].e;

++cpot[j]; /*计算M中第j列的下一个非零元素的目的位置*/

}/*for*/

} /*if*/

free(num); free(cpot);

/*此处输出矩阵元素,代码省略*/

return OK;

}/*TransposeMatrix*/

点击查看答案

第6题

稀疏矩阵一般的压缩存储方法有两种,即______ 。

A.二维数组和三维数组

B.三元组表和散列

C.三元组表和十字链表

D.散列和十字链表

A.

B.

C.

D.

点击查看答案

第7题

稀疏矩阵一般的压缩存储方法有两种,即()。
A二维数组和三维数组

B三元组表和散列表

C三元组表和十字链表

D散列表和十字链表

点击查看答案

第8题

采用三元组表存储稀疏矩阵,是为了()。

A. 节省存取时间

B. 节省存储空间

C. 提高对矩阵元素的访问速度

D. 提高对矩阵运算的可靠性

点击查看答案

第9题

假设稀疏矩阵A和B (分别为m*n和n*1矩阵)采用三元组表存储,编写一个算法计算C=A*B, 要求C也是采用稀疏矩阵的三元组表存储。

点击查看答案

第10题

以三元组顺序表存储稀疏矩阵时,可以通过寻址公式对数据元素进行随机访问。
点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信