循环队列和链队列的比较

前言

本文原本是一篇随感+笔记,被翻出来后就整理发了博客。
不曾想能上搜索头条,既如此,决定更新一下,加上必要的阐释,避免影响有需求的读者。
(我这么理解大家,如果有需要的话,是不是可以考虑点个赞或者点个关注再走呢?)

编程实现

说实话,这个编程实现的话,emmmm……我其实不喜欢用Python那种太强的语言,本想用C/C++,奈何网上或者教材多用C/C++,不需要我单独写,另外是我个人用Java比较熟练一些,就用Java实现的这两种数据结构:

  • 循环队列(Java)
  • 链队列(Java)

勉强可以一看啦,因为其实这只是编程实现,所以不涉及分析。
分析的话以后再说吧Orz……有问题可以问我,嗯……

总结

作为队列本身来说,在队首出队和队尾入队的效率都很高——O(1),因此二者可以直接比较的只有空间性能。
初始化时循环队列必须确定一个固定的长度,所以有储存元素个数的限制和浪费空间的问题;
链队列没有溢出的问题,只有当内存没有可用空间时才会出现溢出,但是每个元素都需要一个引用域,从而产生了结构性开销。
所以,当队列中的元素个数变化较大时,应该采用链队列;反之,应该采取循环队列。
此外,如果确定不会发生溢出,也可以采用顺序队列。

当然了,顺序栈和链栈的比较也类似(入栈、出栈的效率均为O(n)……)

安利一下Orz

看过来!!!
这是我爆肝整理的基础数据结构与算法大全,基本能满足不深入研究算法的计算机专业本科生使用了,分别有用Java、Python、JavaScript实现,如果您有需要可以看看呢 ^ v ^

你可能感兴趣的:(#)