目录

  • 1 课程资料
    • 1.1 课程标准
    • 1.2 教学日历
    • 1.3 说课课件
  • 2 第一章绪论
    • 2.1 本章教学目标
    • 2.2 数据结构简介
    • 2.3 数据结构类型
    • 2.4 算法分析
    • 2.5 本章讲义
    • 2.6 本章测验题
    • 2.7 测验
  • 3 线性结构
    • 3.1 本章教学目标
    • 3.2 线性表
    • 3.3 线性表的顺序存储及运算实现
      • 3.3.1 本节讲义
    • 3.4 线性表的链式存储和 运算实现
      • 3.4.1 本节讲义
    • 3.5 应用
    • 3.6 数组
      • 3.6.1 讲义
    • 3.7 本章测验题
    • 3.8 测验
    • 3.9 作业
  • 4 第三章栈和队列
    • 4.1 本章教学目标
    • 4.2 第一课时栈
      • 4.2.1 讲义
    • 4.3 第二课时队列
      • 4.3.1 讲义
    • 4.4 应用
      • 4.4.1 讲义
    • 4.5 本章测验题
  • 5 第四章串
    • 5.1 第一课时概念
    • 5.2 本章学习目标
    • 5.3 本章测验题
  • 6 第五章树和二叉树
    • 6.1 本章学习目标
    • 6.2 第一课时树的定义及基本术语
    • 6.3 第二课时二叉树定义性质存储
    • 6.4 第三课时二叉树遍历
    • 6.5 第四二叉排序与平衡二叉树
    • 6.6 第五树森林二叉树之间转换
    • 6.7 第六课时哈夫曼树
    • 6.8 本章测验题
    • 6.9 测验
    • 6.10 作业
  • 7 第六章图
    • 7.1 本章学习目标
    • 7.2 第一课时图的基本概念
    • 7.3 第二课时图的存储
    • 7.4 第三课时图的遍历
    • 7.5 第四课时最小生成树
    • 7.6 第五课时最短路径
    • 7.7 第六课时拓扑排序
    • 7.8 第七课时关键路程
    • 7.9 本章测验题
    • 7.10 测验
    • 7.11 作业
  • 8 第七章查找
    • 8.1 本章学习目标
    • 8.2 第一课时顺序查找二分查找
    • 8.3 第二课时哈希表
    • 8.4 本章测验题
    • 8.5 测验
    • 8.6 作业
  • 9 第八章排序
    • 9.1 本章学习目标
    • 9.2 第一课时基本概念
    • 9.3 第二课时插入选择排序
    • 9.4 第三课时交换排序
    • 9.5 第四课时归并 基排序及比较
    • 9.6 本章测验题
    • 9.7 测验
    • 9.8 作业
数据结构类型
  • 1
  • 2

存储结构也有四类

1.顺序存储:逻辑上相邻的数据元素存储在物理位置上相邻的存储单元中,这是一种最基本的存储表示方法。2.链式存储:逻辑上相邻的数据元素不要求其物理位置上相邻,数据元素间的逻辑关系通过附设的指针字段值来指示,这是数据结构中最常见的一种存储表示方法。3.索引存储:用上述基本方法存储数据元素同时,还建立一个附加的索引表提高检索的速度和性能。4.散列存储:依据数据元素的关键字值,用散列函数计算出该数据元素的对应的存储地址,依据冲突处理办法实施对数据元素的存储和检索。

u数据类型DataType):一组的集合以及定义于这个值集上的一组操作的总称。

      例如:C++中的整型变量 

u抽象Abstract:抽出问题本质的特征而忽略非本质的细节。

      例如: 地图、驾驶汽车

u抽象数据类型AbstractData TypeADT:一个数据结构以及定义在该结构上的一组操作的总称。 

ADT抽象数据类型名称{


数据对象:<数据对象的定义>


数据关系:<数据逻辑关系的定义>


基本操作集:


     操作名1


     <基本操作1初始条件描述>


     <基本操作1操作结果描述>


     ……


     操作名n


     <基本操作n初始条件描述>


     <基本操作n操作结果描述>


}ADT抽象数据类型名称

1.算法Algorithm:是对特定问题求解步骤的一种描述,是指令有限序列

2. 算法的五大特性:


输入:一个算法有零个或多个输入。


输出:一个算法有一个或多个输出。


有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。


确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。


可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。

2. 算法的五大特性:


输入:一个算法有零个或多个输入。


输出:一个算法有一个或多个输出。


有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。


确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。


可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。

1.设计一个容易理解、编码和调试的算法。


2.设计一个能有效利用计算机资源的算法。

算法质量考虑因素:

正确性Correctness):算法的执行结果应当满足预先规定的功能和性能要求。

可读性Readability):一个算法应当思路清晰、层次分明、简单明了、易读易懂。

健壮性Robustness):当输入不合法数据时,应能作适当处理,不至引起严重后果。

有效性Efficient):判断依据主要是效率和低存储量。