天天看点

算法与数据结构——2.数据结构基本概念

数据结构基本概念:

数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表达和实现”的学科

是数据对象在计算机中的组织方式

(图表,图像,声音等属于非数值

数据对象必定与一系列加在其上的操作相关联

完成这些操作所用的方法就是算法

数值计算的程序设计问题:

  • 结构静力分析计算可用:线性代数方程组
  • 全球天气预报:环流模式方程(球面坐标)

计算机应用系统的两个关键问题:

  • 表示:对象及其关系在计算机中的表示。只有对象及其相互关系已存储在计算机中,才能被进一步处理
  • 操作:对对象进行处理,访问

用例1 :超市商品管理

对商品的各种信息如何加以组织和存储

数据对象:商品

关系:线性

用例2:计算机对弈

操作对象:格局(棋盘状态)

元素间的关系:树(由比赛规则决定)

相关名词:

数据:数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。

或者说数据是对客观事物的符号表示,在计算机科学中指所有能输入到计算机中并被计算机程序处理的符号的总称。

数据包括:整型、实型、布尔型、图像、字符、声音等一切可以输入到计算机中的符号集合。

例如:C语言的源程序,目标程序,可执行程序都可以认为是数据

算法与数据结构——2.数据结构基本概念

数据元素:是组成数据的基本单位,是数据集合的个体在计算机程序中通常作为一个整体进行考虑和处理

例如整个学生信息表可看作一个数据元素

算法与数据结构——2.数据结构基本概念

一个数据元素可由多个数据项组成,数据项是有独立含义的最小单位。

数据对象:性质相同的数据元素的集合,是数据的一个子集。

算法与数据结构——2.数据结构基本概念

数据结构:是指相互之间存在一种或多种特定关系的数据集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的我组织形式。

补充:

数据元素相互之间的关系称为结构。

结构分为四种基本结构:(下方会有数据的逻辑结构与存储结构的详解,此处简要概括)

(1)集合:“同属一个集合”,跟数学中的集合概念是一样的

(2)线性结构:结构中的数据元素之间存在一个对一个的关系。例如表结构

(3)树形结构:结构中的数据元素之间存在一个对多个的关系。

(4)图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系。

数据结构的形式定义为:数据结构是一个二元组。

Data_Structure=(D,S)

其中,D是数据元素的有限集,S是D上关系的有限集。

数据类型:是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。

例如:在高级语言中,整形类型的取值范围为:-32768~+32767,运算集合为加、减、乘、除,取模,即+、-、×、/、%。

数据类型分为原子类型和结构类型。

  • 原子类型:其值不可分解。如C语言中的标准类型(整型、实型、字符型)
  • 结构类型:其值是由若干成分按某种结构组成,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。

讲解:一个学生的信息可以包含姓名性别等,这就是结构类型

补充:因为指针是只是元素存储地址,而地址就是一个值,故而指针是原子类型。

数据抽象与抽象数据类型:

抽象数据类型:指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作

简言之,一个数学模型以及定义在该模型上的一组操作。

抽象数据类型确定了一个模型,但将模型的实现细节隐藏起来;它定义了一组运算,但将运算的实现过程隐藏起来

用例1.

可以将整型看作一个抽象数据类型,它的取值范围、运算集合加、减、乘、除都是确定的,实现细节被隐藏的

用例2.

线性表的抽象数据类型的描述

抽象数据类型实现的三种方法

(1)传统的面向过程的程序设计,例如朴树

(2)“包”、“模型”的设计方法

(3)面向对象程序设计

抽象数据类型的特性

(1)数据抽象:用ADT(抽象数据类型Abstract Data Type)描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它的外部用户的接口(即外界使用它的方法)

(2)数据封装:将实体的外部特性和其内部实现的细节分离,并且对外部用户隐藏其内部实现细节。比如电视机,能用遥控器进行操作控制,而至于电视机显像原理等,不需要理解。

数据的逻辑结构和存储结果

逻辑结构:数据元素之间的逻辑关系的描述

四种基本结构:

集合结构、线性结构、树形结构、图状结构

集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。

算法与数据结构——2.数据结构基本概念

线性结构:结构中的数据元素之间存在一个对一个的关系。例如表结构

算法与数据结构——2.数据结构基本概念

将a1、a2、a3……看做一个个节点

树形结构:结构中的数据元素之间存在一个对多个的层次关系。

例如:一个学校的我组织结构图、家谱族谱、目录与子目录

图状结构或网状结构:结构中的数据元素之间存在一个对多个的任意关系。

算法与数据结构——2.数据结构基本概念

例如:城市的旅游交通关系

逻辑结构分布:

算法与数据结构——2.数据结构基本概念

存储结构:逻辑结构在计算机中的存储映像,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。

数据元素的表示:用若干个二进制“位串”表示 0101……

数据元素之间的关系在计算机中的表示方法:

(1)顺序映像(顺序存储结构):逻辑关系与位置关系都是紧邻的

算法与数据结构——2.数据结构基本概念

(2)非顺序映像(非顺序存储结构):不是按照逻辑顺序,零散的分布

算法与数据结构——2.数据结构基本概念

给a1增添a2的地址,给a2增添a3的地址,以此类推

head头指针,Null作结束

运算集合:在计算机中进行运算操作的集合。

例如在信息表中查询,插入,修改,删除等(增删改查)

继续阅读