线性结构
线性结构考虑为数轴的一维结构,也就是只有前后的概念,而你对于前后的实现决定了两种基本的线性数据结构:数组、链表。
理解上可以认为数组的前后定义为实际空间上的前后,而链表则是抽象上的前后。
在数组与链表的基础上,我们对数据的行为方式根据实际应用情况进行一定的设计则形成两个较高级的数据结构: 栈与队列
其中栈的行为方式为先进后出,队列为先进先出;
对于栈,了解中断的小伙伴比较容易理解,当在程序A中需要执行程序B的时候,这时有个概念要保留住A 等B 执行完成再继续执行A 也就是我们要先把A 放在一边,把B 放在面前,等B 执行完再把A 重新拿到面前。
对于队列,比较容易理解就是 排队执行。
非线性结构
可考虑为二维或多维结构,以二叉树来举例,数据在前后的概念上增加了一个类似角度的概念,我们的“前”有两个——“左”和“右”。但由树的概念“后”依然只有一个。而图在树的基础上更进一步“前”可能有多个,“后”也可能有多个;