实验四数组的运算。
实验目的:掌握稀疏矩阵的压缩存储方法及主要运算的实现。
实验内容与要求:
设计一个稀疏矩阵计算器,要求能够:⑴输入并建立稀疏矩阵;⑵输出稀疏矩阵;⑶执行两个矩阵相加;⑷执行两个矩阵相乘;⑸求一个矩阵的转置矩阵;⑹求一个矩阵的逆矩阵(选做)。
算法设计:#include<>
#define maxsize 100
typedef struct
int i,j; /该非零元的行和列。
int v; /该非零元的值。
triple;
typedef struct
triple data[maxsize]; 非零元三元组表,data[0]未用。
int rpos[maxsize];
int m,n,t; /矩阵的行数,列数和非零元个数。
tripletable;
tripletable a;
tripletable b;
void creat()
int k;
int row=1;
printf("输入稀疏矩阵a的行数,列数和非零元个数:")
scanf("%d %d %d",&
for(k=1;k<=
int a[100][100]=;
for(k=1;k<=
a[printf("矩阵a为:");
for(k=1;k<=
for(k=1;k<=
while(row<=
printf("输入稀疏矩阵b的行数,列数和非零元个数:")
scanf("%d %d %d",&
for(k=1;k<=
int b[100][100]=;
for(k=1;k<=
b[printf("矩阵b为:");
for(k=1;k<=
row=1;
for(k=1;k<=
while(row<=
if(while(row<=
if(void add(tripletable a,tripletable b) /矩阵的加法。
int k;
int a[100][100]=;
for(k=1;k<=
a[int b[100][100]=;
for(k=1;k<=
b[int c[100][100]=;
for(k=1;k<=
for(int l=1;l<=
c[k][l]=a[k][l]+b[k][l];
printf("矩阵a与b相加后的矩阵为:");
for(k=1;k<=
void multi(tripletable a,tripletable b) /矩阵的乘法。
int k;
tripletable c;
int arow,p,q,ccol,t,tp;if(
if(arow<
elseint a[100][100]=;
for(k=1;k<=
a[int b[100][100]=;
for(k=1;k<=
b[int c[100][100]=;
for(k=1;k<=
c[printf("矩阵a与b相乘后的矩阵为:");
for(k=1;k<=
void convert(tripletable a) /矩阵的转置。
int k;
tripletable d;
if(int d[100][100]=;
for(k=1;k<=
d[int result[100][100]=;
for(k=1;k<=
result[
数据结构实验八内部排序
1 掌握内部排序的基本算法 2 分析比较内部排序算法的效率。1.运行下面程序 include include define max 50 int slist max 待排序序列 void insertsort int list,int n void createlist int list,int n...
数据结构实验考核报告 顺序表的实现
2011 2012年度第1学期。实验考核题目 顺序表的实现。院系 学号 姓名 任课教师 完成日期 年月日。一。预习准备。1.实验目的。1 理解线性表的概念 2 理解顺序表存储结构概念和特点 3 掌握顺序表存储结构的建立 插入 删除 查询和输出基本操作算法。2.实验环境。widows 操作系统 mic...
数据结构实验之结构体与共同体
实验三 结构体和共用体。include include typedef char elemtype typedef struct node r next null return h void listinsert linklist l,int i,elemtype e if p j i 1 s li...