您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页数据结构实验报告-数组和广义表

数据结构实验报告-数组和广义表

来源:测品娱乐
.

《数据结构》实验报告

实验序号:7 实验项目名称:数组和广义表 学 号 实验地点 姓 名 指导教师 专业班级 实验时间 一、实验目的及要求 本次实验目的是通过上机练习,熟悉和掌握课堂所讲授的基本知识点。要求上机以前要认真复习课堂教学内容。完成稀疏矩阵的三元组顺序存储。 二、实验设备(环境)及要求 计算机;学生不许把食物带到机房吃;不许上网做与实验无关的内容;不许同学之间聊天;保持实验室安静卫生。下课把键盘,座椅放回原处。 三、实验内容与步骤 稀疏矩阵压缩存储,三元组顺序表的实现。然后完成操作 CreateSMatrix(&M)创建稀疏矩阵,和求稀疏矩阵的转置TransposeSMatrix(TSMatrix &M, TSMatrix &T)。编写一个函数,按照矩阵的形式打印出稀疏矩阵。 Header.h #include #include //稀疏矩阵的三元组顺序表存储 #define MAXSIZE 125 //非零元个数的最大值 typedef int ElemType; typedef struct//三元组节点 { int i,j;//非零元的行下标、列下标 ElemType e;//矩阵的元素值。 '.

.

}Triple; typedef struct { Triple data[MAXSIZE+1];//非零元数组,data[0]不用。 int mu,nu,tu;//矩阵的行数、列数、非零元个数。 }TSMatrix; //-------稀疏矩阵的操作函数-------// void CreateSMatrix(TSMatrix *M) //以行为主序,创建稀疏矩阵 { char sign='y'; int tu; (*M).tu=0;(*M).mu=0;(*M).nu=0; printf(\"请输入矩阵的行数:\\n\"); scanf(\"%d\ printf(\"请输入矩阵的列数:\\n\"); scanf(\"%d\ while(sign=='y') { ++(*M).tu; '.

.

tu=(*M).tu; printf(\"请输入第%d个非零元\\n\ printf(\"\\n请输入行号:\"); scanf(\"%d\ printf(\"\\n请输入列号:\"); scanf(\"%d\ printf(\"\\n请输入元素值:\"); scanf(\"%d\ printf(\"\\n\\n如果继续输入其他非零元素,请输入字母'y',否则请输入'n' : \"); scanf(\"%c%c\ } } void PrintSMatrix(TSMatrix *M) { int *p,k,i,j; int mu,nu,tu; mu=(*M).mu;nu=(*M).nu;tu=(*M).tu; p=(int *)malloc((nu+1)*sizeof(ElemType));//用来保存每行元素。 '.

.

for(i=1;i<=mu;i++) { for(k=0;k<=nu;k++) p[k]=0; for(k=1;k<=tu;k++) { if((*M).data[k].i==i) } for(j=1;j<=nu;j++) printf(\"%-5d\ printf(\"\\n\"); } } void TransposeSMatrix(TSMatrix *M,TSMatrix *T) //采用三元组表存储,实现稀疏矩阵的转置。 { int q=1,col=1; (*T).mu=(*M).nu; (*T).nu=(*M).mu; (*T).tu=(*M).tu; for(col=1;col<=(*M).nu;col++) { p[(*M).data[k].j]=(*M).data[k].e; '.

.

for(q=1;q<=(*M).tu;q++) if((*M).data[q].j==col) { (*T).data[q].i=(*M).data[q].j; (*T).data[q].j=(*M).data[q].i; (*T).data[q].e=(*M).data[q].e; } } } Source.h #include\"header.h\" void main() { TSMatrix M,T; CreateSMatrix(&M); PrintSMatrix(&M); TransposeSMatrix(&M,&T); printf(\"\\n\\n\"); PrintSMatrix(&T); '.

.

四、实验结果与数据处理 '.

.

五、分析与讨论 以前学过另一种将矩阵转置的方法,现在学习的这种方法更方便,遇到复杂、阶数比较大的有规律的矩阵,存储更省内存。这种方法更具有一般性,能学到这种通用的方法大大减轻了计算量,感觉很好。 六、教师评语 签名: 日期:

成绩 '.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务