访问: https://jiajunhuang.com/tutorial/data_structure/index.md
在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。
这个系列教程就是为了解决这样一个问题的,我将会使用很多实际项目中的场景,来说明一种数据结构解决了什么实际问题,他的各种 操作时间复杂度,有何种缺点和优点等等。
由于种种数据结构的典型应用不同,因此本系列中,我们将涉及到 Python,Go 和 C 三种语言,还有一点点汇编知识,但是对此不要感觉到 害怕,他们之间的语法并不会相差太大,基本上 C 语言家族的语言都很类似,相信大家放下心中的恐惧之后可以轻松理解代码的意思。
本系列分为 12 篇,分别介绍了 12 种数据结构在实际项目中的使用:
数组(array)
链表(linked list)
字典(map 或 dict)
栈(stack)
队列(queue)
大小堆(heap)
集合(set(hashset, treeset))
有序集合(树的实现和跳跃表实现,参考 redis)
位图(bitmap)
hyperloglog(参考 redis)
radix tree 或 trie
b tree 和 b+ tree
昨天写完了第一篇 "数组(array)": https://jiajunhuang.com/tutorial/data_structure/array.md
|  |      1cheneydog      2019-09-10 08:53:08 +08:00 出书,出名,赚钱,迎娶白富美,走上人生巅峰。 | 
|  |      2Natsuno      2019-09-10 08:54:44 +08:00 支持 | 
|  |      3usapla      2019-09-10 09:01:58 +08:00 持续关注 | 
|  |      4Jhonson      2019-09-10 09:06:32 +08:00 跟我之前的想法很像,我希望是集思广益,比如 dubbo 里面用到了什么结构时很巧妙的? io 多路复用有哪些结构?每个人都讲讲一些工程中的数据结构,组合起来那就真的强!楼主加油! | 
|  |      5qsnow6      2019-09-10 09:12:42 +08:00 收藏! | 
|  |      6CareiOS      2019-09-10 09:13:22 +08:00 必须赞一个呀。 | 
|      7doudouwu      2019-09-10 09:15:50 +08:00 很有意思,插眼 | 
|  |      8gansteed OP | 
|  |      9Egfly      2019-09-10 09:37:59 +08:00  1 找个高级一点的头衔,然后去开个课程,收费就完事了 | 
|      10userGyl      2019-09-10 09:46:42 +08:00 收藏 关注 | 
|  |      12justin2018      2019-09-10 10:12:43 +08:00 nice | 
|  |      13wolfie      2019-09-10 10:15:01 +08:00 手写劝退。。。 | 
|  |      14ipwx      2019-09-10 10:16:49 +08:00 我以为诸位学了这些数据结构,之后的职业生涯中在用到某个别人的库或者系统的时候,会自然地猜到这些数据结构的用处的。然而看来是我多想了…… | 
|  |      15ipwx      2019-09-10 10:17:47 +08:00  1 我觉得其实一个优秀的程序员应该具有天生的好奇心,用库和系统会去探究其中的原理,自然会联想到数据结构,不需要别人写教程教的…… | 
|  |      16gansteed OP @justin2018 感谢支持 @wolfie 哈哈,下一篇注解还是打字吧 @ipwx 其实这个主要是针对工作经验不足的同学的,如开篇所说 "在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。" | 
|  |      17mlhorizon      2019-09-10 10:53:11 +08:00 支持楼主做科普,总结一下对自己也是有好处的。 | 
|      18Kimiato      2019-09-10 11:13:20 +08:00 via Android 收藏,关注 | 
|  |      19bobsam      2019-09-10 11:27:25 +08:00 点赞~ | 
|  |      20shyrock      2019-09-10 11:41:01 +08:00 读完了。。。 问题是这根本不是本帖所说的“实际项目中的应用”啊。。。 | 
|  |      21gansteed OP | 
|  |      22xrr2016      2019-09-10 12:04:06 +08:00 via Android 支持支持,Mark 一下 | 
|  |      23lovelife1994      2019-09-10 12:07:07 +08:00 via iPhone 马克 | 
|  |      24WytheHuang      2019-09-10 12:44:35 +08:00 via Android 马来人一下 | 
|  |      25ClutchBear      2019-09-10 13:24:08 +08:00 这示例图也太艺术性了. | 
|  |      26gansteed OP | 
|      27raysonlu      2019-09-10 15:18:53 +08:00 马克,认真写,有深度,通俗,自然火起来的 | 
|  |      28codespots      2019-09-10 16:38:13 +08:00 关注,小弟前端,一直不知道数据结构在前端中的实际应用,可否在教程里大致提几个例子 | 
|  |      30netnr      2019-09-11 06:33:49 +08:00 @gansteed 昨天刚聊到 数据结构、离散数学、数据建模,没上过大学,让我去看看这些东西,今天早上就看到老哥的主题了,缘分哪,持续关注 | 
|      31qiaogaojian      2019-09-11 11:23:56 +08:00 先回复 养肥在看 | 
|  |      32allgy      2019-09-11 11:35:52 +08:00 支持 | 
|  |      33LeeChP      2019-09-11 12:17:19 +08:00 via iPhone 插眼插眼 | 
|  |      34Varchar      2019-09-11 14:26:48 +08:00 via iPhone 支持下 | 
|  |      36webshe11      2019-09-12 06:10:44 +08:00 这个博客的标题吓我一跳 | 
|  |      37gansteed OP | 
|  |      38kuroismith      2019-09-12 10:17:35 +08:00 推荐工作经验不足的朋友看看 redis 源码, 常见数据结构在 redis 里都有对应的实现, 而且相当简洁, 没什么骚操作. 如果直接源码看不进去可以买本 redis 设计与实现, 写的比较清楚. redis 在业务中很常用, 方便和实际场景结合去理解. 看完了再看 java / c++ 的标准库里面的实现, 就差不多了. | 
|  |      39boboyangmoumou      2019-09-16 10:03:53 +08:00 我要关注收藏,没事看看还不错 |