一、什么是数据结构?
数据结构是由数据和结构组成,数据是描述客观事物的一种符号,能够被计算机识别的一组符号,如包含有(整型、浮点、布尔、字符、声音、视频、图像等二进制数据);
什么叫二进制(由0和1组成的数串)数据呢?二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
说完了数据,那么结构是什么呢?简单概述就是一组或多组数据之间的任一组合关系,我们叫这种关系的表达方式为结构;不好理解,我们举个例子:如计算机由(cpu+内存+硬盘等)组成,我们把计算机中的各个部件看成数据,他们之间互相连接起来,通过什么方式连接起来的这种关系我们就叫做结构;
综上所述,我们要编写好一个程序,首先需要分析待处理对象的特征(数据)及各个特征之间的关系(结构),这就是我们学习数据结构的目的。
二、数据结构分为逻辑结构和物理结构
根据不同的视觉看问题,我们把数据结构分类为逻辑结构和物理结构;
逻辑结构是指数据对象中数据之间的相互关系表现;根据各个关系表达行为我们又可以分为以下四种表达方式:
1)、集合结构:
数据元素同属于一个集合,并且没有和其他元素产生关联;各个元素之间是平等关系;他们之间的关系图如数学中集合,如下图:
2)、线性结构:
数据元素之间是一对一的关系,就像我们小朋友排队手牵手的关系一样;你牵我,我牵他 巴拉巴拉;如下图:
3)、树形结构:
指数据元素之间存在一对多的关系情况,如下图:
4)、网状结构(又称图形结构):
指数据元素之间存在多对多的关系情况,如下图:
物理结构:
说完了逻辑结构,现在来说说物理结构,物理结构概念很简单,就是指逻辑结构在计算机中的一种存储方式;实际上是就是让数据元素怎么在计算机存储器里存储的问题;这里说的存储器实际就是我们常见的内存。
数据的存储结构直接反应了数据的逻辑关系,应该怎样采用什么样的逻辑关系是数据存储结构(物理结构)的难点也是重点。
数据存储结构这里有分两种(顺序存储、链式存储)
顺序存储结构:
这种存储结构其实很简单,就是排队占位,就好比我们排队买票一样;按先后顺序排列一排购买票。
链式存储结构:
由于我们不可能完全像顺序存储结构那样守规矩,实践情况很复杂,比如有人插队、有人中途离开了,位置留出来了怎么办了?还是按照顺序存储结构肯定就不能实现了;这里就会请出链式存储结构,数据元素存储任何的存储单元,存储在哪里不清楚,这组存储单元可以是连续的或非连续的;数据元素的存储关系并不能反应出逻辑关系,因此需要一个标示(指针)来存放数据;所以我们就可以通过指针找到具体的数据,并不用关心数据具体在哪里!
总结,从上文中我们介绍了数据、数据结构、数据结构分为(逻辑结构、物理结构)初步认识到数据结构具体是什么,对我们写程序有什么好处;逻辑结构是面向问题的解决方案;而物理结构是面向计算机而言的;其最终目标是将数据与逻辑关系存储在计算机内存里;