我正在学习使用JavaScript实现数据结构
现在我的重点是如何实现deque?
编辑:从下面的评论中,我得到了有关如何实现基于数组的deque的有用指导。是否有一种使用类来实现基于对象的deque的方向?
我了解了一些要点,例如我需要:
- addFront()
- removeFront()
- peekFront()
- addBack()
- removeBack()
- peekBack()
但我对一些问题感到困惑:
我需要多少指针?至少,我知道从队列中我需要两个(头尾)指针,但不确定在双端队列中是否需要更多。
在这种情况下,JavaScript中哪种数据类型方便作为基础?例如,我在Youtube上看到一些导师谈论圆形数组,但这在JS中未知。
编辑2:
我正在跟随一本名为《JavaScript数据结构和算法学习指南(第3版)》的书籍。
在该书的第5章中,作者仅基于对象和一些变量开始实现Deque。
但是我不明白他是怎么做到的,因为代码已经加密了,但我仍然可以从中获取他的文件并测试他的方法Github存储库
我可以说@trincot的答案非常接近书籍作者的方法
但当我比较我的结果时[1 = 作者 - 2 = @trincot]:
根据书籍索引,关于链接列表的内容在第6章中才有,所以我没有预料到他的解决方案将基于他之前没有提到过的东西
如果我遗漏了任何要点,请告诉我...谢谢
push()
、pop()
、shift()
、unshift()
以及标准索引访问,它们能够提供你所需要的全部工具。 - Sirkodeque
,只需使用默认JS数组
就可以完成工作吗? - Ayman Morsymap()
等)。 - Sirko