少儿Python编程6-计算机数据结构和算法

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

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

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

2)设计相应的算法。

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

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

Program = Data Structure + Algorithm

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

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

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

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

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

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

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

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

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

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

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

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

二、数据结构的逻辑结构

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

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

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

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

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

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

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

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

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

三、数据结构的存储结构

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

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

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

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

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

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

四、数据的运算[3]

1.数据的运算

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

2.数据类型

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

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

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

五、参考资料

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

[2]: 数据结构:八种数据结构大全_緑水長流*z的博客-CSDN博客_数据结构

[3]: https://blog.csdn.net/heyuchang666/article/details/49891635

猜你喜欢

转载自blog.csdn.net/weixin_40239288/article/details/125778830