【问题标题】:Implementing stacks and Queue实现栈和队列
【发布时间】:2020-08-24 12:20:32
【问题描述】:

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

  • 从头开始(列表喜欢)

  • 使用组合(使用列表)

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

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

【问题讨论】:

  • 哪种语言?
  • 我使用的语言是c++

标签: c++ stack queue


【解决方案1】:

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

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

除非您需要为特定用例的列表添加额外的功能,否则不需要继承。如果您不需要更改任何内容,那么充其量您基本上只是使用标准列表,在最坏的情况下,您可能只是在做额外的工作。

仅使用常规列表的优点是已经为您制作并由其他程序员维护。因此,这可能是最好的。

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

希望这对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 2015-05-15
    • 2021-07-08
    • 2018-06-14
    • 1970-01-01
    • 2014-08-12
    • 2014-12-23
    • 2010-10-15
    相关资源
    最近更新 更多