数据结构实验四数组的运算

发布 2019-07-11 10:55:17 阅读 8270

实验四数组的运算。

实验目的:掌握稀疏矩阵的压缩存储方法及主要运算的实现。

实验内容与要求:

设计一个稀疏矩阵计算器,要求能够:⑴输入并建立稀疏矩阵;⑵输出稀疏矩阵;⑶执行两个矩阵相加;⑷执行两个矩阵相乘;⑸求一个矩阵的转置矩阵;⑹求一个矩阵的逆矩阵(选做)。

算法设计:#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...