队列、堆栈与数组、链表的区别与联系
首先,明确两个概念:数据结构与数据存储结构!
数据结构
是指相互之间存在一种或多种特定关系的数据元素的集合。
简单理解:数据结构就是描述对象间逻辑关系的学科。
比如:队列就是一种先进先出的逻辑结构,栈是一种先进后出的逻辑结构,家谱是一种树形的逻辑结构!(初学数据结构的时候很不理解为什么有“栈”这个东西;队列很容易理解—无论购物就餐都需要排队;栈可以认为就是个栈道—只允许一个人通过的小道,而且只能从一端进入,然后再从这端返回,比如你推了个箱子进去啦,第二个人也推个箱子进去,此时只能等后进来的这个人拉着箱子出去后,你才能退出。)
数据存储结构
它是计算机的一个概念,简单讲,就是描述数据在计算机中存储方式;
常用的数据存储方式就两种:顺序存储,非顺序存储!
顺序存储就是把数据存储在一块连续的存储介质(比如硬盘或内存)上----举个例子:从内存中拿出第100个字节到1000个字节间的连续位置,存储数据;数组就是典型的顺序存储!
非顺序存储就是各个数据不一定存在一个连续的位置上,只要每个数据知道它前面的数据和后面的数据,就能把所有数据连续起来啦;链表就是典型的非顺序存储啦!
队列、栈是线性数据结构的典型代表,而数组、链表是常用的两种数据存储结构;队列和栈均可以用数组或链表的存储方式实现它的功能!
数组