前言
笔者最近在复习《算法与数据结构》这方面内容,由于在求职过程中经常会有所考察,因此在这里对其进行梳理并做笔记。本专题结构按照《大话数据结构》一书进行开展,对源码和内容进行学习。话不多说,进入正题。
基本概念的通俗解释
- 数据就是计算机要处理的东西,包含多种数据类型,也囊括不同媒体形式,如字符,声音,图像,视频等,可以被统称为“符号”。所具备的特点是:可以输入计算机,可以被计算机处理。非传统数据类型数据,如声音,图像等,需要编码后可输入。
- 数据元素就是数据中每一个基本单位,可以认为是一袋米(数据)中的米粒(数据单元)
- 数据项是不可分割的最小元素,若干数据项组成数据元素。
- 数据的子集称为数据对象。
- 数据结构则是只相互之间存在一种或多种特定关系的数据元素集
逻辑结构与物理结构
逻辑结构是数据对象中数据元素的关系,包括:
- 集合结构
- 线性结构
- 树形结构
- 图形结构
相比较而言,物理结构是指在计算机中的存储形式,包括:
- 顺序存储结构(存储位置挨着,一个挨着一个)
- 链式存储结构(存储位置不挨着,由指针域确定顺序)
抽象数据类型ADT
数据类型是指一组性质相同的值的集合及定义在集合上操作的总称。数据类型各不相同,占用的物理存储大小也不相同。因此,为了高效利用空间,同时区分不同的数据,数据类型被设定用以进行地址划分和操作。在C语言中存在的类型:
- 原子类型:不可再分解的基本类型,如char,int,string,等
- 结构类型:可以进行二次分解的数据类型,如list等。
那么这些数据类型是否有一定的范式能够遵循?于是诞生了抽象数据类型ADT, Abstract Data Type,它的意义是数据类型的数学抽象特征。体现了程序设计中的问题分解与抽象的过程。ADT的标准流程是:
Data
数据元素之间逻辑关系定义
Operation
对于数据的不同操作
endADT
结束语
本章我们对数据,数据对象,数据元素,数据项,逻辑结构,物理结构,数据类型,抽象数据类型ADT等基本概念进行了介绍和记录。下一章节我们将对算法进行简单介绍。