数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学课。

计算机处理问题的过程,其实就是处理数据的过程,计算机解决一个具体问题的步骤[1]:

(1)分析问题,确定数据模型。

(2)设计相应的算法。

(3)编写程序,运行并调试程序直至得到正确的结果。

程序设计 = 数据结构 + 算法

(Program = Data Structure + Algorithm)

数据结构(Data Structure) 是数据的组织结构,用来组织、存储数据。

算法(Algorithm) 就是解决问题的方法或者过程。

数据结构与算法python习题 数据结构与算法python语言_python

一、从数据中抽象出数据结构

处理问题需要从数据入手来分析,进而得到解决问题的方法,首先对数据结构化。

数据结构与算法python习题 数据结构与算法python语言_数据结构与算法python习题_02

数据:是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母、符号和模拟量等的统称。比如在游戏当中你拥有的人物角色、装备、等级、金币等,这些都是数据,而且这些数据分为多种不同类型存储在计算机里。

数据元素:是指按某一标准对数据进行归类而划定的一个最小单位,它包含了一定的意义,可作为一个整体处理。比如人类,人就是数据元素。

数据项:是数据元素的单个成员项,也就是说一个数据元素是由若干个数据项组成的。比如人这个数据元素,可以有眼睛、耳朵等数据项,也可以有姓名、年龄等数据项。

多个有关系的数据项组成一个数据元素,众多的数据元素组成了大量的数据。

数据对象:我们处理分析数据的时候,一般会从大量数据中选取性质相同的有限个数据元素,组成一个集合,作为研究对象,称为数据对象。数据对象是性质相同的有限个数据元素的集合,它是数据的一个子集。如大写字母数据对象是集合C={'A','B','C',…,'Z'};1~100的整数数据对象是集合N={1,2,…,100}。

数据结构与算法python习题 数据结构与算法python语言_数据结构_03

数据结构:是指所涉及的数据元素以及数据元素之间的关系,可以看作是相互之间存在着特定关系的数据元素的集合。

数据结构与算法python习题 数据结构与算法python语言_数据结构与算法python习题_04

比如考试的排名,老师会按照成绩多少做成一个顺序排列的表格,从第一名到最后一名,按顺序排列下来。其实这就是一种数据结构,叫做顺序表。数据对象就是每个人的排名情况,包括名次、姓名、成绩等等。结构就是名次的顺序排列,每个人只有一个前名次和后名次(第一名和最后一名除外)。

数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。

数据结构与算法python习题 数据结构与算法python语言_数据结构与算法python习题_05

二、数据结构的逻辑结构

逻辑结构是指数据元素之间的相互关系,它是独立于计算机的。通常分为四类结构:

集合:结构中的数据元素除了同属于一种类型外,别无其它关系。

线性结构:结构中的数据元素之间存在一对一的关系。定义了线性关系。

树型结构:结构中的数据元素之间存在一对多的关系。定义了层次关系。

图状结构:结构中的数据元素之间存在多对多的关系。定义了网状关系。

1.集合结构:单个数据元素之间没有任何关系(一盒糖)。

数据结构与算法python习题 数据结构与算法python语言_数据_06

2.线性结构:定义了线性关系,数据元素存在一对一的相互关系。(排队)

数据结构与算法python习题 数据结构与算法python语言_算法_07

3.树形结构:定义了层次关系,数据元素存在一对多的相互关系。(家庭成员)

数据结构与算法python习题 数据结构与算法python语言_数据结构与算法python习题_08

4.图形结构:定义了网状关系,数据元素存在多对多的相互关系。(公交站)

数据结构与算法python习题 数据结构与算法python语言_python_09

三、数据结构的存储结构

也就是元素如何存储的,存储结构又称为物理结构。它是面向程序员的。存储结构分为顺序结构,链式结构,索引结构,散列结构。

1.顺序存储结构:借助数据元素之间的相对位置来表示元素之间的逻辑结构

数据结构与算法python习题 数据结构与算法python语言_数据结构_10

2.链式存储结构:借助数据元素之间的元素的指针表示数组元素的逻辑结构

数据结构与算法python习题 数据结构与算法python语言_数据_11

3.散列存储结构:顺序存储+算列

4.索引存储结构:顺序存储+索引

逻辑结构与存储结构关系图:

数据结构与算法python习题 数据结构与算法python语言_数据结构_12

四、数据的运算[3]

1.数据的运算

是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更和排序等。例如,对于高等数学成绩表这种数据结构,可以进行一系列的运算:增加一个学生成绩记录、删除一个学生成绩记录、求所有学生的平均分、查找序号为i的学生分数等。

2.数据类型

指一组性质相同的值的集合及定义在此集合上的一些操作的总称。可将数据类型分为两类:

原子类型:不可以再分解的基本类型,整型、实型、字符型等。

结构类型:由若干个类型组合而成,可以再分解。

数据结构与算法python习题 数据结构与算法python语言_数据_13

五、参考资料

[1]: https://baijiahao.baidu.com/s?id=1687302279709228125