对于循环队列与链队列的比较,可以从两方面来考虑,
- 从时间上,其实它们的基本操作都是常数时间,即都为O(1)的,
- 不过循环队列是事先申请好空间,使用期间不释放,
- 而对于链队列,每次申请和释放结点也会存在一些时间开销,如果入队出队频繁,则两者还是有细微差异。
- 对于空间上来说,
- 循环队列必须有一个固定的长度,所以就有了存储元素个数和空间浪费的问题。
- 而链队列不存在这个问题,尽管它需要一个指针域,会产生一些空间上的开销,但也可以接受。所以在空间上,链队列更加灵活。
总的来说,在可以确定队列长度最大值的情况下,建议用循环队列,
如果你无法预估队列的长度时,则用链队列。