?
?
? ? ? ?计算机中两种基本的数据结构式数组及链表,前者是在自然顺序的内存中存储数据,而后者是通过其基本单元——节点的数据域和指针域来存储数据和记录数据间的相对位置,概括地说:数组中的数据位置是连续的,链表中的数据位置是离散的。
?
? ? ? ?这就决定了,在数组中找一个数据很容易(只需知道数组首地址及数据在数组中的位置);而在链表中改变数据的相对位置很容易(只需改变个别节点的指针域就行)。他们各有优势,也各有劣势,并且优势与劣势恰好相反。
?
? ? ? ?正是这一不同决定了用他们来实现队列时,队列的优势与劣势。
?
? ? ? ?队列的特点是可以改变长度(存储数据的个数),是一种比较理想的数据结构。我们常常要对它进行“增删查改”的工作,或者更根本地说是“找”与“变”的工作。“找”就是找到索引位置的数据,数组队列非常擅长,
“变”就是改变数据间的相对位置关系,链表队列非常擅长。而当我们“变”数组队列时,往往要频繁地新建数组并逐个赋值;当我们“查”链表队列中的数据时,往往要遍历队列,工作量很大。
?
? ? ? ?总之两者各有千秋,适合用于各自擅长的场合,使用时要根据情况灵活选取
?