我在wikipedia上找到了大量数据结构,同时也查看了数据结构中的几本书,发现它们各不相同。我想知道新毕业生应该拥有的基本或最低数据结构知识清单是什么?
考虑到实施方面存在差异,还有必要了解它们在多种编程知识中的实现。如果我知道C中链接列表的实现应该知道它基于Java的实现吗?
如果你可以帮助我明确地理解它会很棒:
编辑:我对数据结构列表更感兴趣。
答案 0 :(得分:2)
看看Cormen等人的Introduction to Algorithms。根据我的经验,如果你知道那里有什么东西,那么你就会有任何事情发生在你身上。
我不会考虑知道任何实现非常有用。如果你了解基础知识,你应该能够快速实现自己的版本,但是你可能永远不会有,因为有可用的库。因此,实践规则是:了解你的图书馆!
即便如此,重要的是要了解数据结构的属性(例如空间开销,中央操作的运行时,并发访问时的行为,(im)可变性......)因此您将始终使用最适合的数据结构你的任务。
答案 1 :(得分:1)
这个问题确实有点过于宽泛,甚至是你缩小范围的方式,因为这取决于你正在考虑的未来路径。研究生院?博士学位?行业?哪个行业?
但是作为一个粗略的最低限度,我会说,看看CLRS(如拉斐尔的建议)并选择以下内容:
可能还有一些更基于你正在寻找什么样的工作。作为博士学位的人......好吧。他们都是。在某些时候,你将采取一个限定词,并期望知道他们中的大多数。
答案 2 :(得分:0)
查看麻省理工学院的OCW Intro to Algorithm Course理论上这是一本很棒的教程。 对于在Java中练习数据结构,请检查:数据结构和数据结构。 Robert Lafore的Java算法非常出色。 用一种语言实现就足够了,但尝试用面向结构的语言来解决它,比如C和OO语言,比如Java / C ++。这对准备面试有很大帮助。 C中基本数据结构的一个很好的资源:here