严蔚敏的数据结构太难了 一个实力超群的程序猿必须知道的数据结构有哪些?

一个实力超群的程序猿必须知道的数据结构有哪些?算法图搜索 (广度优先、深度优先)深度优先特别重要排序动态规划匹配算法和网络流算法正则表达式和字符串匹配数据结构图 (树尤其重要)Map堆栈/队列Trie

一个实力超群的程序猿必须知道的数据结构有哪些?

算法

  1. 图搜索 (广度优先、深度优先)深度优先特别重要
  2. 排序
  3. 动态规划
  4. 匹配算法和网络流算法
  5. 正则表达式和字符串匹配

数据结构

  1. 图 (树尤其重要)
  2. Map
  3. 栈/队列
  4. Tries | 字典树

额外推荐

  • 贪婪算法
  • 概率方法
  • 近似算法

下面这个没有特定优先级

算法:

  • 三路划分-快速排序
  • 合并排序(更具扩展性,复杂度类似快速排序)
  • DF/BF 搜索 (要知道使用场景)
  • Prim / Kruskal (最小生成树)
  • Dijkstra (最短路径算法)
  • 选择算法

数据结构

  • HashMap (真的要知道所有哈希结构)
  • 图和树(红黑树很好学) (red-black trees are good to learn)
  • 堆(优先级队列)
  • 栈/队列(必须知道的基础内容)
  • Tries | 字典树

A *和遗传算法也很有趣。

我现在没学完C语言,但是学校已经开了数据结构课程,感觉像听天书一样,如何更好地理解数据结构?

第一,我觉得作为一个大学生,自学能力很强。对于C语言没有学完,可以自己抽时间认真学会。不会的可以到图书馆查阅资料,或者上网也可以自学。现在网络平台有好多优质资源,你可以试试。

第二,数据结构的算法比较抽象,必须认真研究。他是编程序的依据,这与C语言没有必然的联系。只是用C语言可以实现一些算法。也可以用别的语言实现。

第三,要对自己有信心。不会的问题可以和老师,同学交流。既然选择好专业,就应该深入研究。

这就是我的一些看法,希望能够帮到你!