数据结构实验报告-数组和广义表 下载本文

内容发布更新时间 : 2024/5/21 3:31:29星期一 下面是文章的全部内容请认真阅读。

《数据结构》实验报告

实验序号: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(\ printf(\请输入矩阵的列数:\\n\ scanf(\ while(sign=='y') { ++(*M).tu;

tu=(*M).tu; printf(\请输入第%d个非零元\\n\ printf(\请输入行号:\ scanf(\ printf(\请输入列号:\ scanf(\ printf(\请输入元素值:\ scanf(\ printf(\如果继续输入其他非零元素,请输入字母'y',否则请输入'n' : \ scanf(\ } } 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));//用来保存每行元素。