数据结构复习记录:绪论

什么是数据结构

用计算机解决问题的步骤:

  • 从具体问题抽象出一个适当的数学模型
  • 设计一个解此数学模型的算法
  • 编程序进行测试,调整直至得到最终解答

其中建立数学模型是分析具体问题的过程,包括

  • 分析具体问题中的操作对象
  • 找出这些对象之间的关系,并用数学语言描述

数学模型分为两类 :数值计算类和非数值计算类

数值计算类

eg. 根据三条边,求三角形面积

非数值计算类

  • 图书馆的书目检索系统自动化——线性数据结构
  • 计算机和人对弈问题——树结构
  • 多叉路口交通灯的管理——图结构

程序设计的实质是对确定的问题选择一种好的 数据结构,加上设计一种好的算法

基本概念和术语

  • 数据:所有能输入到计算机中并被计算机程序加工、处理的符号的总称
    eg. 整数、实数、、字符、声音、图像、图形等
  • 数据元素:数据的基本单位。在计算机程序中通常作为一个整体进行考虑和整理
  • 数据项:数据不可分割的最小单位。一个数据元素可由一个或多个数据项组成
  • 数据对象:由性质相同的数据元素组成的集合
  • 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
    四种基本结构:集合、线性结构、树形结构、图形结构
  • 数据的逻辑关系:各数据元素之间的逻辑关系
    在这里插入图片描述
  • 数据的存储结构,也称存储表示、物理结构、物理表示
    1. 数据结构在计算机存储器中的映象
    2. 顺序存储结构和非顺序存储结构
  • 数据类型:一个值的集合和定义在这个值上的一组操作的总称。
    1. 原子类型
    2. 结构类型
  • 抽象数据类型:与计算机的实现无关的数据类型
ADT 抽象数据类型名
{
    
    1.数据对象
 2.数据关系:一个或多个关系
 3.一组基本操作/运算
}ADT抽象数据类型名

算法和算法分析

  • 算法:求解一个特定任务的指令的有限序列

  • 算法的5个特征:

    1. 有穷性:在有限步之后算法终止
    2. 确定性:无二义性
    3. 可行性:基本运算执行有限次
    4. 输入:有零个或多个输入量
    5. 输出:至少有一个输出量
  • 算法设计要求

    1. 正确性
    2. 可读性
    3. 健壮性
    4. 高效与低存储量
  • 算法的描述工具

    1. 自然语言
    2. 程序设计语言
    3. 流程图(框图)
    4. 伪码语言
      是一种包括高级程序设计语言的三种基本结构和自然语言成分的“面向读者”的语言
    5. 类C
      介于伪码语言和程序设计语言之间的一种表现形式。保留了C语言的精华,不拘泥于C语言的语法细节,同时添加了一些C++的成分
  • 算法的时间复杂度

    1. 算法(或程序)中基本操作(或语句)重复执行的次数的总和
    2. 设n为求解问题的规模,基本操作(或语句)执行次数总合成为语句频度,记作f(n)
    3. 时间复杂度记作T(n),T(n)=O(f(n))
      时间复杂度
  • 算法的空间复杂度

    1. 执行算法所需存储空间的大小
    2. S(n)=O(f(n)),n为问题的规模
    3. 存储空间:寄存指令、常数、变量和输入数据对数据进行操作的工作单元实现计算所需用的空间

猜你喜欢

转载自blog.csdn.net/m0_49564079/article/details/114688781