《大话数据结构》学习笔记 —— 01 数据结构


一、基本概念



1. 数据结构 + 算法 = 程序

程序设计的实质是对确定问题选择一种好的结构,加上设计一种好的算法。



2. 数据


定义

可描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。


特性

  • 可以输入到计算机中。

  • 能够被计算机程序处理。

对于整数、浮点数等数值型类型,可以直接进行数值计算。

对于字符数据,需要进行非数值的处理。譬如声音、图像、视频数据可以先通过编码手段变成字符数据,再进行处理。



3. 数据元素


定义

数据元素就是组成数据的、有一定意义的基本单位,在计算中通常作为一个整体处理。也称作记录

譬如禽类数据,数据元素就是鸡、鸭、鱼、羊等。



4. 数据项


定义

一个数据元素可由若干个数据项组成,比如人这样的数据元素可以有眼、鼻、口这样的数据项。

数据项是数据不可分割的最小单位



5. 数据对象


定义

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

性质相同指的是数据元素具有相同数量和类型的数据项,比如人都有性别、身高、体重等相同的数据项。



6. 数据结构


定义

结构,简单理解就是关系

数据元素之间不是独立的,而是存在特定关系的,这种关系称之为结构

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。






二、逻辑结构与物理结构

上文提到了数据元素之间存在着特定的关系,按照视点的不同,我们把数据结构分为逻辑结构和物理结构。




1. 逻辑结构


定义

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


  1. 集合结构:数据元素间的关系是“属于同一个集合”。

  2. 线性结构:数据元素之间存在着一对一的关系(如学生信息表) 。

  3. 树形结构:数据元素之间存在着一对多的关系(如阻止架构、目录系统) 。

  4. 图形结构:数据元素之间存在着多对多的关系(如社会关系网、地图) 。


总结

逻辑结构是针对具体问题的

是为了解决某个问题,选择了一种合适的数据结构来表示数据元素之间的逻辑关系。




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


定义

数据的逻辑结构在计算机中的存储形式,实际上就是如何把数据元素存储到计算机的存储器中。

数据的存储结构,应正确反映数据元素之间的逻辑关系

物理结构有两种形式:顺序存储结构链式存储结构



顺序存储结构

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

说白了,就是大家按顺序排队站好,谁也别插队。

然而,实际上总有人会插队,也会有人要上厕所、有人会放弃排队,于是便需要另一种物理结构了。



链式存储结构

与顺序存储结构不同,链式存储不需要大家按顺序站好排队。

先领一个号,等着叫号。期间去哪儿都没关系,只要及时回来。需要关注的仅仅是前一个号有没有被叫,前一个被叫,下一个就轮到自己了。

数据元素之间的物理位置不能反映其逻辑关系,指针字段来存放下一个数据元素所在的位置,用指针来反映数据元素之间的逻辑关系。


定义
把数据元素存放在任意的存储单元中,这组存储单元可以连续也可以不连续

数据元素之间的物理位置不能反映其逻辑关系指针字段来存放下一个数据元素所在的位置,用指针来反映数据元素之间的逻辑关系。


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






三、数据类型


定义

指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

在高级编程语言中,每个常量、变量都有各自的取值范围。

而类型,就是用来说明取值范围和所能进行的操作。


分类

原子类型:不可再分解基本类型,包括整数型、字符串型、浮点型等。

结构类型:由若干个基本类型组合而成可以进行再分解。譬如整型数组是由若干整型数据组成的。


举例

比如在C语言中声明int a, b,

这就意味着在给变量a和变量b赋值时不能超出int的取值范围

变量a和变量b之间的运算只能是int类型所允许的运算



抽象数据类型


定义

一个数学模型及定义在该模型上的一组操作

简单来说:一个数据对象、数据对象中各数据元素之间的关系及对数据元素的操作。



举例

各个计算机,不论是大型机、PC、平板,甚至是手机都拥有“整数”类型,也需要整数间的运算,那么整型其实就是一个抽象数据类型

尽管它在上面所提到的机器中的实现方法上可能实现上不一样,但由于其定义的数学特性相同,所以在编程人员看来它们都是相同的。

“抽象”的意义在于数据类型的数学抽象特性



一组操作

就好像“超级玛丽”一样,里面的主角马里奥有几种基本操作:走(前进、后退、上、下)、跳、打子弹。








文中内容主要是对《大话数据结构》一书内容的摘抄,版权归原作者----程杰所有。

如有侵权,请联系我进行删除。

你可能感兴趣的:(数据结构)