`
年少_青衫薄
  • 浏览: 1883 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

链表与数组队列与其内存优化

 
阅读更多

      链表队列和数组队列都是常用的数据结构,但是两者的构造造成了两者根本上的差异。

      首先是链表队列:

      链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

      而由链表构成的链表队列的新元素(等待进入队列的元素)总是被插入到链表的尾部,而读取的时候总是从链表的头部开始读取。每次读取一个元素,释放一个元素。所谓的动态创建,动态释放。因而也不存在溢出等问题。由于链表由结构体间接而成,遍历也方便。

      相较于数组队列,链表队列的插入与删除显得方便十足。同时,由于链表队列是动态生成,所以内存利用无需优化。但是链表队列对于指定元素的调用有着先天的不足,而这恰恰是数组队列的长处所在。

      数组队列:

      数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

      对于数组队列,虽然也可以动态生成,但是内存消耗巨大,在程序较大时,这种方法就不那么可取了。所以对于数组队列,内存优化是十分必要的:

      在为数组队列分配内存时,我们就要先预期内存的使用情况,然后初始化合理长度的数组来存放数据,当初始的数组使用完毕后,我们初始化一组长度合理且更大的数组来存放数据,然后让原来的数组失去指向,使其被系统回收内存。

      在有着大量数据交互的时候,数据队列比链表队列效率更高。

      

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics