- 6
- 0
- 约 65页
- 2021-11-14 发布于安徽
- 举报
数据结构:第6章数组和稀疏矩阵
(2)三元组元素赋值: 相当于 A[i][j] = x 先在三元组t中找到适当的位置k,将k~t.nums个元素后移一位,将指定元素x插入到t.data[k]处。算法如下: bool Value(TSMatrix t, ElemType x, int i, int j) { int k=0 , k1; if (i=t.rows || j=t.cols) return false; while (kt.nums it.data[k].r) k++; /*查找行*/ while (kt.nums i==t.data[k].r jt.data[k].c) k++; /*查找列*/ if (t.data[k].r==i t.data[k].c==j) t.data[k].d=x; /*存在这样的元素,只须改变其值 else /*不存在这样的元素时插入一个新元素*/ { for (k1=t.nums-1;k1k;i--) /*元素后移*/ { t.data[k1+1].r=t.data[k1].r; t.data[k1+1].c=t.data[k1].c; t.data[k1+1].d=t.data[k1].d; } t.data[k].r=i; t.data[k].c=j; t.data[k].d=x; t.nums++; } return true; } (3)将指定位置的元素值赋给变量: 相当于 x = A[i][j] 先在三元组t中找到指定的位置,将该处的元素值赋给x。算法如下: bool Assign(TSMatrix t, ElemType x, int i, int j) { int k=0; if (i=t.rows || j=t.cols) return false; while (kt.nums it.data[k].r) k++; while (kt.nums i==t.data[k].r jt.data[k].c) k++; if (t.data[k].r==i t.data[k].c==j) { x=t.data[k].d; return true; } else return false; } (4)输出三元组 从头到尾扫描三元组t,依次输出元素值。算法如下: void DispMat(TSMatrix t) { int i; if (t.nums=0) return; printf(“\t%d\t%d\t%d\n, t.rows, t.cols, t.nums); printf( ------------------\n); for (i=0;it.nums;i++) printf(\t%d\t%d\t%d\n,t.data[i].r, t.data[i].c, t.data[i].d); } (5)矩阵转置 对于一个m×n的矩阵Am×n,其转置矩阵是一个n×m的矩阵。设为Bn×m,满足ai,j=bj,i,其中1≤i≤m,1≤j≤n。其完整的转置算法如下: void TranTat(TSMatrix t, TSMatrix tb ) { int p, q=0, v; /*q为tb.data的下标*/ tb.rows=t.cols; tb.cols=t.rows; tb.nums=t.nums; if (t.nums!=0) { for (v=0; vt.cols; v++) for (p=0; pt.nums; p++) /*p为t.data的下标*/ if (t.data[p].c==v) { tb.data[q].r=t.data[p].c;
您可能关注的文档
最近下载
- VDGP201_2002-05-01_VolumendefizitevonGutkenausNichteisenmetallen(中文).doc VIP
- 部编版道德与法治一年级下册第2课《做事要仔细》精美课件.pptx VIP
- 《新污染物治理技术》-课件全套 第1--13章 新污染物简介--- 人工智能与新污染物控制.pdf VIP
- 提高学习效率的六大诀窍五大方法.docx
- 2025年江苏省盐城市中考地理试卷及答案.docx VIP
- 化工制图习题集答案(20201030132317).pdf VIP
- DLT5427-2022年火力发电厂初步设计内容深度规定.doc
- 2025微博娱乐白皮书.docx VIP
- DL-T5153-2024火力发电厂厂用电设计技术规程.pptx VIP
- 体育教学论第4章.ppt VIP
原创力文档

文档评论(0)