【发布时间】:2016-04-07 09:37:03
【问题描述】:
这可能是一个愚蠢的问题,但它一直困扰着我一段时间。大多数编程语言都有数组(例如 Java、C/C++、C#...好吧 Python 有列表!)但在我看到的大部分文献中,一些数据结构(例如堆栈和队列)被视为更基本的数组。但是既然这么多语言都对数组有如此强大的支持,为什么会有人使用堆栈或队列呢?我意识到,从概念上讲,数组以外的数据结构可能更适合模型,但考虑到您可能必须实现自己的堆栈或队列,考虑到基本数组的功能,工作量要大得多。
我想到的一个例子来自 Gale Shapley 上的 these notes
算法Maintain a list of free men (in a stack or queue).
只使用一个数组并相信自己只看它的前端/后端不是更容易吗?
我想我在问,既然大多数都是使用数组实现的,而且数组更强大,为什么还有人会费心使用堆栈或队列之类的东西?
【问题讨论】:
-
哪里说栈和队列比数组更基本?不在您的引文中。
-
期望的行为、封装和 DRY。
标签: java data-structures language-agnostic