[数据结构与算法]14 搞不懂线性结构,非线性结构?

在前面文章中介绍的数组,栈,队列这种都是线性结构,在接下来的文章中,会介绍图,这是一种非线性结构.
朋友,你是不是一脸问号?啥是线性结构,什么又是非线性结构呢?我怎么区别这两者呢.
别慌,一点点来看.

线性结构

我在学习知识的时候,喜欢和以前的知识联系起来.
线性结构,我就想到了在学数学的时候,常说的线性相关,或者说这两个变量之间呈线性关系.
那么,在数学的定义上,什么是线性关系呢?
我就直接把维基百科的定义搬过来了,链接在这儿: 线性关系

在现代学术界中,线性关系一词存在 2 种不同的含义。其一,若某数学函数或数量关系的函数图形呈现为一条直线或线段,那么这种关系就是一种线性的关系。其二,在代数学和数学分析学中,如果一种运算同时满足特定的“加性”和“齐性”,则称这种运算是线性的。

咱们着重看第一个含义,和数学上面的定义差不多,大概意思就是 y 和 x 的关系在图中表示为一条直线或线段,比如 y=x ,那么这种关系我们就可以称之为是线性关系.
OK ,那 y=x 有什么特殊之处呢?是不是每一个 x 的取值,都唯一对应一个 y 值?
Nice !能够想到这一点,就触及到了线性结构的本质,即:数据元素之间存在着"一对一"的线性关系的数据结构就称为 线性结构.

了解本质之后,咱们应该就很好理解了,像: 线性表,栈,队列,双队列 这种都是线性结构.

非线性结构

在了解线性结构之后,再来理解非线性结构就好说了.
既然线性结构是一对一的关系,那么非线性结构就存在不是一对一的关系了呗,比如一对多?
恭喜你,答对了!
那么我们常见的: 二维数组,多维数组,树,图 就都是非线性结构了.

以上就是想要分享的内容了
最近感觉自己写文章遇到了瓶颈一般,总是觉得没有写出自己想要的效果
关于我的文章,欢迎各位留言和我交流哇

原文地址:https://www.cnblogs.com/zll-0405/p/12900535.html