数据结构之所以重要是因为它处于算法中的基础地位,与解决实际问题关系密切;而之所以不重要是因为课本上能学到的所有实现都已经有人造过轮子了,甚至已经作为很多语言的标准API存在了。
换句话来说,在以后的编码生涯中,你很有可能天天用排序却从来没有写过排序算法,天天用链表却不需要写链表的实现,因为已经有无数前人帮你铺平这些路了。
虽然一个只会调API的攻城狮是一定不合格的,一个不会调API的攻城狮同样也不合格。在没有特殊需要的前提下,攻城狮重复造轮子是对工时的浪费。你一定会实现哈希表,但是用的时候只需要import java.util.HashMap;就可以了。数据结构的知识告诉你它的查找近乎O(1)复杂度,而同样支持按照内容查找的B+树(这个好像没API)是O(logN)复杂度,所以你知道什么情景下用什么结构,也会估计整个流程的时间和空间复杂度,这样就足够了。如果从头造轮子,一般你轮子还没造完,别人业务逻辑都写完了,那公司是没有理由留下你的。
当然,不是什么场景都有轮子用,但是在现在这个面向gayhub编程的年代,真的什么轮子都没有的领域往往是业界前沿,也就是连方法论都不见得明确的领域。比起思考和研究的开销,造轮子花的时间简直不值一提。显然,造轮子能力强在这些领域不能造成太大的优势。
我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6