0%

王道-数据结构-ch1-绪论

王道

绪论

考纲找不到图片(Image not found)

易混淆的概念

数据结构,逻辑结构,存储结构

数据结构三要素:数据的逻辑结构,数据的存储结构和数据的运算

  • 即数据结构种定义了逻辑结构,存储结构

逻辑结构与存储结构之间的关系:存储结构不能独立于逻辑结构,存储结构是逻辑结构再计算机上的映射

名词例子
数据结构顺序表,哈希表,单链表
逻辑结构有序表
物理结构

数据结构的基本概念

基本概念和术语

数据

数据是信息的载体,是描述客观事物属性的数、字符及$\color{yellow}{\text{所有能输入到计算机中}}$并被计算机程序识别和处理的$\color{green}{\text{符号}}$的$\color{green}{\text{集合}}$。数据是计算机程序加工的原料。

是对客观事物的符号表示。

数据元素

数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。$\color{yellow}{\text{一个数据元素可由若干数据项组成}}$,$\color{green}{\text{数据项}}$是构成数据元素的不可分割的$\color{red}{\text{最小单位}}$。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。

数据对象

数据对象是具有相同性质的数据元素的集合,是$\color{green}{\text{数据}}$的一个$\color{green}{\text{子集}}$。例如,整数数据对象是集合$N= \lbrace \pm 0,\pm 1,\pm 2, \cdots \rbrace$。

  • 可以理解为数据的一个$\color{green}{\text{实例化对象}}$
数据类型

数据类型是一个$\color{green}{\text{值的集合}}$和定义在此集合上的$\color{green}{\text{一组操作}}$的总称。

1)原子类型。其值不可再分的数据类型。

2)结构类型。其值可以再分解为若干成分(分量)的数据类型。

3)抽象数据类型。抽象数据组织及与之相关的操作。 一个数学模型以及定义在该模型上的一组操作。

数据结构

数据结构是相互之间存在一种或多种特定关系的$\color{red}{\text{数据元素}}$的$\color{red}{\text{集合}}$。在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构(Structure)。数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。

数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

数据结构的形式定义

数据结构三要素

数据的逻辑结构
  • 线性结构
    • 一般线性表
    • 受限线性表
      • 栈和队列
    • 线性表推广
      • 数组
      • 广义表
  • 非线性结构
    • 集合
    • 树形结构
      • 一般树
      • 二叉树
    • 图状结构
      • 有向图
      • 无向图
数据的存储结构
顺序结构
链式结构
索引结构
散列存储
数据的运算
  • 运算的定义是针对逻辑结构的
  • 运算的实现是针对存储结构的

算法和算法评价

算法的基本概念

算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的$\color{green}{有限}$序列,其中的每条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性:

  • 1)有穷性。
  • 2)确定性。
  • 3)可行性。
  • 4)输入。
  • 5)输出。

算法效率的度量

关于时间复杂度的补充,去阅读了算法导论,发现书中的定义更为严谨,比较适合我这种转牛角尖的憨憨,总结:

基本上强调时间复杂度,没有代码就不要提,题目中会预设某些代码逻辑,你可能需要去猜题目的算法是啥:比如为什么关键路径和拓扑排序的时间复杂度是O(n + e),书中没有细讲,就直接出现了题目