数据结构的基本概念

当我们阅读数据结构的有关书籍时,常常会半知不解,其中有很大一个原因在于我们不熟悉数据结构的概念,导致和作者没有共同语言;

数据:数据是计算机处理的“原料”,可以理解为一个超集。例如:数字、字符串、图片和音频等所有能被计算机处理的东西。记住,它是一个超集,是一个广泛的概念。

数据元素:这是一个具体的概念,可以理解为底层的东西。例如在一个链表中,每一个节点就是数据元素;当然,一个链表的节点可以有多个数据项构成,就像一个结构题一样,我们把构成数据元素的数据称为数据项

数据对象:数据对象是同一性质的数据元素的集合;

具体来说,一个图书检索系统,一本图书的检索信息就是数据元素,一本图书的检索信息包括书名、作者、类别和编号等,就称这些为数据项;至于数据,你可以管任何数据元素,数据对象或数据项都叫成数据。

接下来就是数据结构了,相信各位读者都听过或者学过《数据结构》这一门课或者相关的课,那什么是数据结构呢?这里注意:数据结构不是结构!数据机构是相互存在一种或多种关系的数据元素的集合,即有联系的数据对象。所以但你看到数据结构这一词时,不要顾名思义,它不是指数据的结构,而是指有联系的数据对象。而我们直接用结构来代表数据的结构。

数据的结构通常有:数据结构的基本概念

  •  集合
  • 线性结构                                            
  • 树形结构
  • 图状结构或网状结构

 

 

我们还可以这样表示数据结构DS(date structure)= (D,S)

其中D是数据元素的集合,S是关系的集合;

当然:结构,特别是结构中的关系,在我们脑海中的,即在我们直观看到的(上图就是个例子),和在计算机内存中所存储的结构是不一样的;例如一个链表,直观的看来是一个接着一个的节点的链接;但在计算机中实际实现起来确实两码事,在C语言中实现链表的时候,我们要用到指针,每个节点在内存中的存储也不一定是顺序的。

于是,根据以上讨论,我们可以把结构分为两种:逻辑结构物理结构

顾名思义;逻辑结构就是直观上的结构,物理结构就是在实际实现的时候,在计算机上存                                                                                                  储的结构。

在物理结构中:我们也可以分出这样两种:顺序存储结构和链式存储结构;

顺序存储结构就是数据在内存中是顺序存储的,代表性的例子有数组;

链式存储结构就是数据是依靠指针表示数据的逻辑关系的,数据本身存储在计算机中不一定是顺序的。