在我们这个系列的Post中,我会尽量用一些简明且没那么枯燥的语言、任务和简单代码来说明。完整的系列我想从面向对象到数据结构、再到机器学习和神经网络等等。目的是高中生的快速入门(因为你们已经在高中阶段学过基本的面向过程的Python语法了)和在校生的同步学习,希望我的代码块可以帮助到大家。
就和物理学当中的质能方程(E=mc²)一样,在程序的世界中,也有类似的方程:
Program = Structure + Algorithm(算法)
大家在学习《数据结构》这门课程时,我们会学习基础的数据结构和一些简单的算法,所以有的学校这门课也叫作“数据结构与算法基础”,在此基础上,我们日后就可以深入学习算法分析了。
首先我们看一些抽象的概念,对于他们我们品读一下就好,保证以后使用概念时不要太云里雾里即可。
(1)数据是对客观事物的符号表示
(2)数据元素是数据的基本单位
(3)数据项是构成数据元素的最小单位
(4)数据对象是具有相同性质的数据元素的集合
对于(2)(3)(4)来说,我们可以这样理解:
苏州产业园区有片小区商品房,一个商品房的信息记录为一个数据元素,面积、楼层、价格等等就是一个个数据项。房子信息的集合就是一个数据对象。
(5)数据结构就是相互之间存在一种或者多种特定关系的数据元素的集合,它包括三方面内容:逻辑结构、存储结构、数据运算。
Date_Structure = (D, S) [D是数据元素的有限集合,S是D上关系的有限集合]
对于(5)来说,我们在此主要需要研究的是分类中的前两个,“逻辑结构”&“存储结构”
逻辑结构分为线性和非线性的结构
存储结构分为顺序存储、链式存储、索引存储、散列存储
逻辑结构还是存储结构的这几种分类,它们有各有优劣势,具体的使用方式和Coding 我们将会在今后具体的实践中了解。
我们即刻开始实践,开启你的数据结构之旅吧!
这一长串和你学线性代数时学的n维向量差不多的东西,就是一个名字为L的一个线性表。
再此时我们需要搞清楚两点,
(1)它是具有相同数据类型的n个数据元素的有限的序列。
(2)是
的直接前驱,