001绪论

程序的本质

程序 = 数据结构 + 算法

编写程序的目的

解决实际的应用需求

问题求解的一般步骤
  • 问题抽象:分析和抽象任务需求,建立数学模型
  • 数据抽象:确定恰当的数据模型表示数学模型
  • 算法抽象:在数据模型的基础上设计合适的算法
  • 编程实现:利用编程语言实现设计的数据结构与算法
    001绪论_第1张图片

基本概念及术语

  1. 数据:
    定义:描述客观事物的符号,是计算机中国可以操作的对象,是能被计算机识别,并输入处理的符号集合。
    分类:数值数据、非数值数据(文字、音频、图片、视频等)
    条件:
  • 可以输入到计算机中
  • 能够被计算机程序处理
  1. 数据元素(记录):
    定义:组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。
    3.数据项:
    定义:一个数据元素可以有若干个数据项组成,*数据项是数据中不可分割的最小单位。
    001绪论_第2张图片
  2. 数据对象:
    定义:性质相同的数据元素地集合,是数据的子集

001绪论_第3张图片

  1. 数据结构:
    定义:相互之间存在一种或多种特定关系的数据元素的集合!
  • 数据元素相互之间的关系称为结构,数据结构可以别称为带结构的数据元素集合。
    001绪论_第4张图片

逻辑结构与物理结构

1.逻辑结构:
定义:数据对象中数据元素之间的相互关系
分类:

  • 集合数据:
    • 定义:数据元素除了属于同一集合外,他们之间没有其他关系
    • 特定:各个数据元素“平等的”
  • 线性结构:
    *定义:数据元素之间是一对一的关系。
    001绪论_第5张图片
  • 树形结构:
    定义:数据元素之间存在一种一对多的层次关系。

001绪论_第6张图片

  • 图形结构:
    定义:数据元素之间存在一种多对多的层次关系
    001绪论_第7张图片
    001绪论_第8张图片
  1. 物理结构(存储结构)
    定义:数据的逻辑结构在计算机中的存储形式。
    存储结构形式:
  • 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的,如数组。
    001绪论_第9张图片
  • 链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的也可以是不连续的,数据元素的存储关系并不能反省其逻辑关系。因此需要用一个指针存放数据元素的地址,这样就可以找到相关数据元素的位置。

001绪论_第10张图片
001绪论_第11张图片

  1. 逻辑结构与存储结构的关系:
    逻辑关系是数据结构的抽象,存储结构是数据结构的实现。

**总结:**逻辑结构是面向问题的,物理结构是面向计算机的。

数据类型

定义:一组性质相同的值的集合及定义在此集合上的一些操作的总称。
作用:

  • 约束变量或常量的取值范围
  • 约束白能量或常量的操作

数据类型 = 值的集合 +集合上的一组操作

抽象数据类型

定义:指一个逻辑结构(数据+关系)和定义在该结构上的一组数据操作(函数)

  • <数据结构D + 数据结构P>
  • 抽象数据类型不考虑计算机内的具体存储结构和算法的具体实现。
  • 标准格式:
    001绪论_第12张图片
    001绪论_第13张图片
    001绪论_第14张图片

抽象数据类型的表示与实现:

利用程序设计语言进行实现

  • 一个问题抽象为抽象数据类型后,仅是形式上的抽象定义,还没有达到问题解决的目的,要实现这个目标,就要把抽象的变为具体的,即抽象数据类型在计算机上实现,变成一个能用的具体的数据类型。
  • 抽象数据类型可以用固有的数据类型(如整型、实型、字符型等)来表示和实现;即利用处理器中已经存在的数据类型来说明新类型,用已经实现的操作来组合新操作。

总结

001绪论_第15张图片
001绪论_第16张图片

你可能感兴趣的:(数据结构及算法)