数据结构(一)——基本概念和术语
前言
明年就要找实习找工作了,考虑到面试时候要考察数据结构和算法,于是开始翻以前的书,复习数据结构和一些常用的算法。但是看书有很多概念记不住,不做笔记又觉得不踏实,所以打算把笔记写成系列博客,一来总结学过的知识,二来加深对概念的理解,方便记忆。这篇是第一篇,主要讲数据结构的一些基本概念和术语,比较偏理论。
基本概念和术语
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值型数据,还包括字符及声音、图像、视频等非数值类型。简单来说,数据就是符号,这些符号必须具备两个前提:
-
可以输入到计算机中 能被计算机程序处理
数据元素:也被称为记录,是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。
数据项:一个数据元素可以有若干个数据项组成。
数据对象:是性质相同的数据元素的集合,是数据的子集。什么叫性质相同呢?是指数据元素具有相同数量和类型的数据项。一般在不引起混淆的情况下,都把数据对象简称为数据。
单单看概念,你可能有点懵。我举个生活中例子:生活中很多很多的数据,比如GDP、网页、图片等,而数据对象是其中的一部分,比如我们学校的全体学生就是一个数据对象,每一个学生就是一个数据元素,学生有学号、姓名、专业等,这些就是我们说的数据项。
数据结构
是相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立、杂乱无序的,而是存在特定关系的,这些关系我们就称为结构。按照不同的视点,数据结构分为逻辑结构和物理结构。
逻辑结构
是指数据对象中数据元素之间的相互关系。按照关系不同,可分为四种:
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。集合关系类似于数学中的集合。
线性结构:线性结构中的数据元素之间是一对一的关系。
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。
图形结构:图形结构中数据元素是多对多的关系。
物理结构(存储结构)
是指数据的逻辑结构在计算机中的存储形式。数据元素的存储结构有两种:顺序存储和链式存储。
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
抽象数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就是用来说明变量或表达式的取值范围和所能进行的操作。
抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。