一、数据结构绪论

一、为什么要学习数据结构?

1.编译技术要使用栈、散列表和语法树。

2.操作系统中要使用队列。存储管理表和目录树。

3.数据库系统要使用线性表、多链表和索引树。

4.增强求解复杂问题的能力。

5.提高程序质量。

二、数据结构相关术语:

1.数据(Date):

数值、字符以及能输入到计算机且能被处理的各种符号集合。

数据其实就是符号,不过这些符号必须具备两个前提:

  • 可以输入到计算机中
  • 能被计算机程序处理

整型、实型等数值类型,可以进行数值计算。对于字符数据类型,需要进行非数值的处理,而声音、图像、视频等都可以通过编码的手段变成字符数据来处理。

(1)数据元素(Date Element):数据个体

是组成数据的基本单位,是数据集合的个体,在计算机中通常作为整体处理。也被称为一条记录/一个数据源。

数据项(Date item):一个数据元素可以由若干个数据项组成。

数据项是数据不可分割的最小单位。(但真正讨论问题时,是以数据元素为建立数据模型着眼点)

(2)数据对象(Date Object):数据子集

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

三.数据结构内容:

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

数据结构分为逻辑结构和物理结构(存储结构):

(1)逻辑结构:

指数据对象中数据元素之间的相互关系。

①集合结构

各个数据元素是“平等”的。集合结构中的数据元素除了同属于一个集合外,没有其他关系

②线性结构(linear structure)

线性结构中的数据元素之间是一对一的关系

③树形结构(tree structure)

树形结构中的数据元素之间是一对多的层次关系

④图形结构(graph structure)

图形结构的数据元素是多对多的关系

使用示意图表示数据的逻辑结构时,要注意:

  • 将每一个数据元素看做一个结点,用圆圈表示。
  • 元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,就用带箭头的连线表示。

(2)物理结构(存储结构):

指数据的逻辑结构在计算机中的存储形式。

实际上就是把数据元素存储到计算机的存储器中,这里的存储器主要针对的是内存,外存的数据组织通常用文件结构来描述。 

逻辑结构是面向问题的,而物理结构是面向计算机的,其基本目标就是将数据及其逻辑关系存储到计算机的内存中。

数据的物理结构形式有两种:顺序存储和链式存储。

①顺序存储结构/顺序映像(如数组):

把数据元素存放在地址连续的存储单元里,数据之间的存储关系和逻辑关系是一致的。

②链式存储结构/非顺序映像(如链表):

把数据元素存放在任意的存储单元里,这组存储单元可以是连续的也可以是不连续的。

数据元素的存储关系并不能反应其逻辑关系。所以要用一个指针来存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

(3)运算集合

增、删、改

数据结构的内容:按某种逻辑关系组织起来的一批数据,按一定的映像方式把它存放在计算机存储器中,并在这些数据上定义了一个运算集合,就构成数据结构的基本内容。

四、抽象数据类型(Abstract Data Type)

1.c语言中数据类型分为两种:

2.抽象数据类型(ADT):指一个数学模型及定义在该模型上的一组操作。

  • 定义:抽象数据类型体现了程序设计中问题分解和信息隐藏的特征。
  • 举例:用线性表描述学生成绩、用树或图描述遗传关系。

线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素存在这样的关系:除第一个和最后一个外,每个元素都有唯一的前趋和后继。就可以有对元素的插入和删除。

描述抽象数据类型的标准格式:

猜你喜欢

转载自blog.csdn.net/weixin_43691058/article/details/86525117