我正在寻找一种数据结构,它支持在开始,结束和随机访问中添加元素的恒定时间性能。
我在想双端队列。双端队列是否支持随机访问的恒定时间性能?如果是这样,它是如何实现的?
我知道可以使用双链表来构建双端队列。但是,如何在所有元素上构建索引以实现恒定时间随机访问?
感谢您的帮助。
杰里
答案 0 :(得分:1)
根据定义,您正在寻找的是一个双端队列,但这只是一个抽象的数据结构。维基百科在动态数组方面讨论了several implementation strategies for deques;使用这些,你可以摊销O(1)prepend和append。乍一看,循环缓冲策略似乎最容易实现。