目录

  • 1 第一单元(说课、绪论)
    • 1.1 说课
    • 1.2 数据结构前提知识(c语言程序基础)
    • 1.3 绪论--讲义
    • 1.4 微课(1个)
    • 1.5 实验一:抽象数据类型三元组基本操作的实现
    • 1.6 单元测试
  • 2 第二单元(线性表)
    • 2.1 讲义
    • 2.2 微课(1个)
    • 2.3 实验二:用顺序表实现图书管理
    • 2.4 实验三:用单循环链表实现约瑟夫环问题
    • 2.5 线性表的应用
    • 2.6 单元测试
  • 3 第三单元(栈和队列)
    • 3.1 讲义
    • 3.2 实验四:用栈检测括号的匹配
    • 3.3 实验五:算术表达式求值
    • 3.4 栈和队列的应用
    • 3.5 单元测试
  • 4 第四单元(字符串)
    • 4.1 讲义
    • 4.2 微课(3个)
      • 4.2.1 堆分配
    • 4.3 实验六:实现串的基本操作
    • 4.4 单元测试
    • 4.5 课堂翻转情况
  • 5 第五单元(数组)
    • 5.1 讲义
    • 5.2 微课(4个)
      • 5.2.1 顺序存储
      • 5.2.2 特殊矩阵的压缩存储
      • 5.2.3 稀疏矩阵的转置(2种方法)
    • 5.3 实验七:稀疏矩阵的三元组表示和实现
    • 5.4 单元测试
    • 5.5 课堂翻转情况
  • 6 第六单元(二叉树)
    • 6.1 讲义
    • 6.2 微课(6个)
      • 6.2.1 1、树的顺序存储
      • 6.2.2 2、二叉树的遍历
      • 6.2.3 3、线索二叉树
      • 6.2.4 4、二叉树与同构的森林
      • 6.2.5 5、森林的遍历
      • 6.2.6 6、赫夫曼树与应用
    • 6.3 实验八:二叉树的遍历
    • 6.4 实验九:二叉树中的递归算法
    • 6.5 单元测试
  • 7 第七单元(图)
    • 7.1 讲义
    • 7.2 微课(7个)
      • 7.2.1 1、图的顺序存储
      • 7.2.2 2、图的链式存储
      • 7.2.3 3、图的遍历
      • 7.2.4 4、最小生成树
      • 7.2.5 5、有向无环图的应用
      • 7.2.6 6、关键路径
      • 7.2.7 7、最短路径
    • 7.3 实验十:用深度和广度优先搜索对用邻接表表示的图做遍历
    • 7.4 单元测试
  • 8 第八单元(动态存储管理)
    • 8.1 讲义(选学)
  • 9 第九单元(查找)
    • 9.1 讲义
    • 9.2 微课(4个 )
      • 9.2.1 1、静态查找
      • 9.2.2 2、折半查找
      • 9.2.3 3、二叉排序树
      • 9.2.4 4、哈希表
    • 9.3 实验十一:实现折半查找算法
    • 9.4 单元测试
  • 10 第十单元(排序)
    • 10.1 讲义
    • 10.2 微课(7个)
      • 10.2.1 1、直接插入排序
      • 10.2.2 2、其他插入排序案例
      • 10.2.3 3、交换排序(冒泡排序)
      • 10.2.4 4、快速排序
      • 10.2.5 5、选择排序
      • 10.2.6 6、堆排序
      • 10.2.7 7、归并排序
    • 10.3 实验十二:实现快速排序算法
    • 10.4 单元测试
    • 10.5 调查问卷
实验七:稀疏矩阵的三元组表示和实现

实验七:稀疏矩阵的三元组表示和实现(2学时)

本次实验是作为从线性结构到非线性结构的过渡来安排的。

(一)    问题描述

稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。

1、编制一个实现用三元组顺序表存储的稀疏矩阵的矩阵转置的程序(分别用一般转置法和快速转置法实现)。

2、编制一个实现用行逻辑链接存储的稀疏矩阵的矩阵相乘的程序。

(二)    基本要求

以三元组顺序表表示和实现稀疏矩阵,实现矩阵的转置,以行逻辑链接存储方式表示稀疏矩阵,实现矩阵相乘。矩阵的输入形式采用三元组。矩阵的输出形式最好采用通常的阵列形式(三)       测试数据

自行拟定测试数据即可。

(四)    实现提示

首先应给出矩阵的行、列数,再给出具体的各个元素。