第一章 数据结构绪论——《大话数据结构》
1、基本概念
1)数据元素:组成数据的有一定意义的单位,比如在人类中,人就是数据元素
2)数据项:组成数据元素的单位,是数据不可分割的最小单位
3)数据对象:是性质相同的数据元素的集合,是数据的子集,一般将数据对象简称为数据
4)数据结构:数据之间存在一种相互关系,我们称之为结构。为编写一个好的程序,必须分析待处理对象的特性和对象之间的关系,这就是研究数据结构的意义所在。
(PS:我之前一直不懂数据结构到底是什么,简单来说,数据结构就是数据间的关系。而在动手写程序之前,只有分析好数据间的关系才有可能选出好的数据结构。像我之前那种靠直觉写程序的做法真是大错特错。)
2、逻辑结构和物理结构:
数据结构按视点的不同分为逻辑结构和物理结构
1)逻辑结构:数据对象中元素的相互关系
(PS:平时面对一个问题,首先想它的逻辑结构是什么。就是依照逻辑结构来选择合适的数据结构)
集合结构:数据间除了同属一个结构外,没有其他任何关系
线性结构:一对一关系
树形结构:一对多关系,想想二叉树
图形结构:多对多关系,想想蜘蛛网
2)物理结构(也叫存储结构):指数据逻辑结构在计算机中的存储方式
(PS:找到了合适的数据结构,就要用优秀的算法进行实现,用书上的话就是,“物理结构应该正确的反映逻辑结构”,设计物理结构的过程就是数据结构的实现过程)
顺序结构:把数据元素存放在地址连续的存储单元里,其数据的逻辑关系和物理关系是一致的。(数组就是这种存储结构)
链式结构:把数据元素存放在任意的存储单元里,这组数据单元可以是连续的,也可以是不连续的。(这时就需要一个指针存储数据元素的地址)
3、抽象数据类型
1)数据类型:是一组性质相同的值的集合及定义在此集合上的一些操作的总称(知道这个概念也没什么用)
2)数据类型的分类:
原子类型:不可以再分解的基本类型,包括整型、实型、字符型
结构类型:由若干个类型组合而成,不可再分解的。(比如整型数组就是若干个整型数据组成的)
3)抽象数据类型
抽象的定义:抽取出事物具有普遍性的本质
抽象数据类型定义:一个数学模型及定义在该模型上的一组操作(每个计算机都有整数运算,于是抽象出了整型)
抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性