实现堆栈和队列



实现堆栈和队列的最佳解决方案是什么:

  • 从头开始(类似列表(

  • 使用合成(使用列表(

  • 使用继承(从列表派生(

使用的标准:时间复杂性、代码简单性和可维护性。

Stacks和Queues是相对简单的数据结构。如果使用得当,它们对于所有实现的时间复杂度通常为O(1(。您只需要从队列或堆栈的前面获取数据,然后分别在后面或前面插入新数据。因此,您不需要搜索数据结构,因为您知道在哪里插入和删除数据。https://www.bigocheatsheet.com/

至于代码的简单性和维护性,从头开始创建代码很可能是最糟糕的。你必须自己完成所有的工作,并且必须自己修复任何损坏的东西。(老实说,我喜欢自己尝试构建数据结构,因为尽管存在明显的缺点,但我还是能学到很多关于复杂细节的知识。(

继承不应该是必要的,除非您需要为特定用例的列表添加额外的功能。如果你不需要改变任何东西,那么在最好的情况下,你基本上只是使用标准列表,在最坏的情况下你可能只是在做额外的工作。

仅仅使用常规列表就有一个优点,那就是它已经为您制作好了,并且由其他程序员维护。因此,它可能是最好的。

然而,C++有一个队列和堆栈模板,它可能最适合大多数用例,所以如果您不需要任何特殊的东西,我只会使用它。

希望这对你有帮助。

最新更新