双端队列是可遍历的数据结构吗?它们是基于数组的实现还是链接实现,有区别吗?
发布于 2014-10-21 13:43:15
是的,deque是可遍历的数据结构,你可以从deque中获取interator来进行遍历。在功能上,它没有什么不同。但是,在技术和数据结构方面,这是有意义的。记住,当我们使用list时,我们可以动态添加节点。但是,当使用数组时,我们需要定义deque的大小或使用默认大小。现在,如果你插入另一个元素,那么它将创建两倍大小的新数组,并将旧数组复制到新数组中,然后插入新元素。
发布于 2014-10-21 13:58:46
是的,它们是可遍历的。特别是在JAVA Deque API中,您总是可以让迭代器(或) descendingIterator分别从第一个到最后一个(或从最后一个到第一个)遍历Deque。
对于仅遍历Deque的情况,底层实现可能没有太大区别。但对于其他操作,它是这样做的。人们通常更喜欢ArrayDeque而不是LinkedList。有关这方面的更多信息,请参阅线程Why is ArrayDeque better than LinkedList。
还要查看相应的JAVA API,以了解这两种不同实现之间的主要区别。
发布于 2017-10-17 10:49:25
不是的。就像它是混合结构(即堆栈和队列)一样,双队列(或双端队列)不是被设计为可遍历的。事实上,它们是专门设计成不可遍历的。如果特定应用程序需要遍历其中包含的项的能力,那么出队可能不是在这种情况下使用的最佳数据结构。
https://stackoverflow.com/questions/26479448
复制相似问题