数据结构—基础知识(一):绪论(a)

基本概念和术语

1.数据、数据元素、数据项和数据对象

  • 数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。 包括:a)数值类型的数据:整数、实数等 。 b)非数值型的数据:文字、图像、图形、声音等。
  • 数据元素(Data Element)是数据的基本单位。
  • 数据项(Data Item)是组成数据元素的、有独立含义的、不可分割的最小单位。(例如,学生信息表中的学号、姓名、性别等都是数据项)
  • 数据对象(Data Object)性质相同的数据元素的集合,是数据的一个子集。
  • 数据元素与数据的关系:是集合的个体;
  • 数据对象与数据的关系:集合的子集;

数据结构—基础知识(一):绪论(a)_第1张图片

2.数据结构

  • 数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
  • 数据结构包括三个方面内容

  1. 数据元素之间的逻辑关系,也称为逻辑结构
  2. 数据元素及其关系在计算内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构
  3. 数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。
  • 数据结构的两个层次

  • 逻辑结构:描述数据元素之间的逻辑关系;与数据的存储无关,独立于计算机;是从具体问题抽象出来的数学模型。
  • 物理结构(存储结构):数据元素及其关系在计算机存储器中的结构(存储方式);是数据结构在计算机中的表示。
  • 逻辑结构与存储结构的关系:存储结构是逻辑关系的映像与元素本身的映像;逻辑结构是数据结构的抽象,存储结构是数据结构的实现;两者结合起来建立了数据元素之间的关系。
  • 逻辑结构的种类

  • 划分方法一
  1. 线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。例如:线性表、栈、队列、串
  2. 非线性结构:一个结点可能有多个直接前趋和直接后继。例如:树、图
  • 划分方式二——四类基本逻辑结构
  1. 集合结构:数据元素之间除了同属于一个集合的关系外,无任何其他关系。
  2. 线性结构:数据元素之间存在着一对一的线性关系。
  3. 树形结构:数据元素之间存在着一对多的层次关系。
  4. 图状结构或网状结构:数据元素之间存在着多对多的关系。

数据结构—基础知识(一):绪论(a)_第2张图片

  • 存储结构的种类

  • 四种基本的存储结构及其优缺点
  1. 顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。优点:可以实现随机存取,每个元素占用最少的存储空间(存储密度为一);缺点:只能使用相邻的一整块存储单元,因此可能会产生较多的外部碎片。
  2. 链接存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。优点:不会出现碎片现象,能充分利用所有的存储单元;缺点:每个元素因存储指针而占用额外的存储空间,且只能顺序存储。
  3. 索引存储结构:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字、地址)。优点:检索速度快;缺点:附加的索引表额外占用存储空间。另外,增加和删除数据时也要修改索引表,因而会花较多时间。
  4. 散列存储结构:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。优点:检索、增加和删除结点的操作很快;缺点:散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

3.数据类型和抽象数据类型

  • 数据类型(Data Type)

  • 数据类型是高级程序设计语言中的一个基本概念,前面提到的顺序存储结构可以借助程序设计语言的数组类型描述,链式存储结构可以借助指针类型描述,所以数据类型和数据结构的概念密切相关。
  • 定义:数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。
  • 在使用高级语言设计程序设计语言编写程序时,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。
  • 例如,C语言中:
  • 提供int,char,float,double等基本数据类型
  • 数组、结构、共用体、枚举等构造数据类型
  • 还有指针、空(void)类型
  • 用户还可以用typedef自己定义数据类型
  •   高级语言中的数据类型明显地或隐晦地规定了程序执行期间变量和表达的所有可能的取值范围,以及在这些数值范围上所允许进行的操作。         
  • 抽象数据类型(Abstract  Data Type,ADT)

  • 抽象数据类型一般指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象、数据对象上关系的集合以及数据对象的基本操作的集合
  • 抽象数据类型=数据的逻辑结构+抽象运算(运算的功能描述)                                                                                                                       

        

你可能感兴趣的:(数据结构基础知识,概念,笔记,经验分享,考研,数据结构)