目录

  • 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.利用队列按层次遍历。注意正确使用队列中的定义和函数。

 

其实,二叉树也可以实现非递归的遍历,有兴趣的可以试着写写,书上有中序非递归遍历算法。

(二)基本要求

1.用二叉链表的形式存储一棵二叉树,见书上Create()函数。

注意输入先序前必须补齐空的结点,可用 # 号补齐。

 

2

分别用三种递归方法:先序、中序和后序输出结果。

利用队列按层次遍历。注意正确使用队列中的定义和函数

(三)测试数据

请至少准备3棵不同形态二叉树进行测试。

可自拟,也可采用书上的。

 

(四)实现提示

二叉树的建树过程参照131页算法6.4,下图的二叉树,输入的先序序列应为

abd##e#g##cf###,而不是abdegcf