线性数据结构,从名字可以看出,和“线”脱离不了关系。
那么从“线”联想,水平的,我们可以想到食堂打饭排的队伍,垂直的,我们可以联想到书桌上层叠摆放的书籍。
打饭的队伍一般遵循“先来先服务”的原则,我们叫做队列。
书桌上堆放的图书,如果我们不允许从中间抽取,那么当我们需要拿中间的一本书时,就只能先把上边的书拿到一边。这个就是“后进先出”,我们叫做栈。
当我们把人、书、抽象成一个点,并忽略方向时,我们发现这就是一些线性的点。
这即是“线性”。
那么到“结构”,就需要加上一些规则。
加上“先进先出” 的规则就是队列,加上“后进先出”的规则就是栈。这是两种常用的线性数据结构。
至于其他的,比如双端队列等等,只是多加了些规则。
至此,线性数据结构我们就聊的差不多了。
在C#中,如果我们要实现这些数据结构,可以使用数组、也可以使用链表,也可以使用既有的已经封装好的Queue类和Stack类。
感兴趣的话可以看看这些类的源码,巩固理解。
下一讲我们讲非线性数据结构。