我在wikipedia上发现了大量的数据结构,也研究了数据结构中的几本书,并发现它们有所不同。我想知道一个新的CS毕业生应该具备的基本或最低数据结构知识清单是什么?Datastructres需要的最低知识
考虑到实现方式的不同,还需要了解它们在多个编程知识中的实现。如果我知道C中链接列表的实现,我应该知道它的基于Java的实现?
这将是巨大的,如果你能帮助我斩钉截铁地理解:
- 基本的数据结构(必需的CS毕业生)
- 高级数据结构
编辑:我更感兴趣的是数据结构列表。
我在wikipedia上发现了大量的数据结构,也研究了数据结构中的几本书,并发现它们有所不同。我想知道一个新的CS毕业生应该具备的基本或最低数据结构知识清单是什么?Datastructres需要的最低知识
考虑到实现方式的不同,还需要了解它们在多个编程知识中的实现。如果我知道C中链接列表的实现,我应该知道它的基于Java的实现?
这将是巨大的,如果你能帮助我斩钉截铁地理解:
编辑:我更感兴趣的是数据结构列表。
这个问题实际上有点过于宽泛,即使你缩小了它的范围,因为它取决于你在看什么样的未来路径。研究生院?博士轨道?行业?哪个行业?
但作为一个粗略的最低,我会说,看看CLRS(拉斐尔建议),并挑选了以下工作:
而且可能还有一些基于您正在寻找什么样的工作。作为博士生轨道上的人......好。他们全部。在某些时候,你会拿到一个预选赛,并且预计会知道其中的大部分。
看看Cormen等人的Introduction to Algorithms。根据我的经验,如果你知道那里有什么,你就会为你找到任何东西。
我不会考虑知道任何实现非常有用。如果你知道基础知识,你应该能够快速实现你自己的版本,但是你可能永远不会需要,因为有这样的库。所以实践的规则是:了解你的图书馆!即使如此,重要的是要知道数据结构的属性(例如空间开销,中央操作的运行时间,并发访问下的行为,(im)可变性等),因此您将始终使用最适合的数据结构到你手头的任务。
查看MIT的OCW Intro to Algorithm Course理论上这是一个很棒的教程。 对于练习Java中的数据结构检查:数据结构& Java中的算法由Robert Lafore表示,它非常出色。 用一种语言来实现就足够了,但试着用面向结构的语言来解决它,比如Java和C++等C和OO语言。这在准备面试时会有很大帮助。 一个很好的资源在C基本数据结构:here
这似乎并不像一个真正的问题..你想一般了解数据结构?采取数据结构课程。 – WeaselFox 2012-02-09 06:17:15
这个问题可能适用于即将到来的[计算机科学栈交换](http://area51.stackexchange.com/proposals/35636/computer-science-non-programming?referrer=pdx8p7tVWqozXN85c5ibxQ2)。所以,如果你喜欢有这样一个问题的地方,请继续前进,并帮助这个提议起飞! – Raphael 2012-02-09 11:24:34
@Raphael请让我知道我可以如何将您的建议转移到正确的论坛。 – 2012-02-09 16:46:49