像我这样的码农,从来都不会关注一些概念,在我的脑海中,这些都是搞学术研究或者备战考研需要掌握的东西,而我这样的一线码农,具备实战经验和编码技巧就行了。究竟是不是这样理解的,姑且不去讨论,既然说是从基础走起,那就从概念说起。
数据结构课程:是一门研究非数值计算的程序设计问题中的操作对象,以及官们之间的关系和操作等相关问题的学科。
数据结构是一门研究数据的学科,因此数据一说对于其至关重要。
数据:是描述客观事物的符号,是计算中科院操作的对象,是能被计算机识别,并输入到给计算机处理的符合集合。比如说:一张图片是数据,搜索到的页面,包含着各种数据,如文字,图片等信息。而我们可以对数据进行各种处理,如上面说到的图片,我们可以在ps中打开图片,对其进行各种处理,达到我们想要的结果。
数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。比如说:人类中,什么是数据元素呢?自然是人了。
数据项:一个数据元素可以由若干个数据项组成。刚刚提到的人类,数据元素为人,而人由四肢、眼、耳等组成,这些部位则为数据项。数据项是数据不可分割的最小组成单元。
数据对象:性质相同的数据元素的集合,是数据的子集。所谓的性质相同指的是数据的数量以及其类型相同,比如说人,人都具有姓名,生日等等基本信息。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。因此在编写程序时,分析数据之间的关系和其自身的特性,成了很关键的一部分。
逻辑结构:数据对象中数据元素之间的相互关系。包含以下几种关系:
集合结构:集合结构中的数据元素除了同属于一个集合外,宫们之间没有其他关系。如图(1-1)
线性结构:数据元素之间是一对一的关系。如图(1-2)
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。如图(1-3)
图形结构:数据元素是多对多关系。如图(1-4)
图(1-1) 图(1-2) 图(1-3) 图(1-4)
物理结构:是指数据的逻辑结构在计算机中的存储形式。
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。比如在我们日常使用的高级程序语言中,整型、字符型等都是数据类型。
抽象数据类型:(Absract Data Type、ADT)是指一个数学模型及定义在该模型上的一组操作。比如说到人,人包含各种基本的属性标识,姓名、年龄、民族等。人其实就是一个抽象的概念,并不是特指某一个人。在面向对象设计的思想中,其实考虑的就是就各种场景抽象成机器描述。