JAVA知识(四):浅谈线性结构和非线性结构的区别

     

       在讲线性结构和非线性结构之前,我们必须了解数据结构是什么,它包含什么内容,现在我用一个图大概的表示一下。

              JAVA知识(四):浅谈线性结构和非线性结构的区别_第1张图片

        数据结构就是一种计算机存储的方式,比如说磁盘,磁盘是用链式存储的,这样可以节省内存空间。可以看到两两数据之间是存在关系的,他们可以通过这些关系来提高资源和存储效率。


一、线性结构

    线性结构最典型的数据关系就是一对一,它是一种有序数据的集合,什么叫有序呢?比如说一维数组,决定数组块中的数据元素只有一个因素,也就是从左往右或者从右往左的行因素,而不是像二维和多维数组受行和列及更多因素影响,这就是一对一的关系。线性结构,除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。

 

  常用的线性结构有:线性表,栈,队列,双队列,数组,串

特点:
1.集合中必存在唯一的一个"第一个元素";
2.集合中必存在唯一的一个"最后的元素";
3.除最后元素之外,其它数据元素均有唯一的"后继";
4.除第一元素之外,其它数据元素均有唯一的"前驱"。
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。
如(a1,a2,a3,…,an),a1为第一个元素,an为最后一个元素,此集合即为一个线性结构的集合。
相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继。

 

二、非线性结构

    相对于线性结构,非线性结构有一个最明显的区别就是:各个数据元素不再保持在一个线性序列中每个数据元素可能与零个或者多个其他数据元素发生联系。这就是所谓的一对多或者多对一,总之不是一对一。同时也会根据关系的不同,可分为层次结构和群结构。

常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图


 

你可能感兴趣的:(JAVA知识(四):浅谈线性结构和非线性结构的区别)