最近在写一个系列《数据结构在实际项目中的使用》

2019-09-10 07:58:29 +08:00
 gansteed

访问: 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

5293 次点击
所在节点    分享创造
39 条回复
gansteed
2019-09-10 11:44:14 +08:00
@mlhorizon
@Kimiato
@bobsam 感谢支持

@shyrock 项目不一定是业务强相关的项目,可能是编译器、runtime、框架实现等等。业务强相关的项目用数组的的确不多。
xrr2016
2019-09-10 12:04:06 +08:00
支持支持,Mark 一下
lovelife1994
2019-09-10 12:07:07 +08:00
马克
WytheHuang
2019-09-10 12:44:35 +08:00
马来人一下
ClutchBear
2019-09-10 13:24:08 +08:00
这示例图也太艺术性了.
gansteed
2019-09-10 13:43:51 +08:00
raysonlu
2019-09-10 15:18:53 +08:00
马克,认真写,有深度,通俗,自然火起来的
codespots
2019-09-10 16:38:13 +08:00
关注,小弟前端,一直不知道数据结构在前端中的实际应用,可否在教程里大致提几个例子
gansteed
2019-09-10 17:02:02 +08:00
@raysonlu 感谢建议


@codespots 港真,我 js 用的少,这个可能有难度了
netnr
2019-09-11 06:33:49 +08:00
@gansteed 昨天刚聊到 数据结构、离散数学、数据建模,没上过大学,让我去看看这些东西,今天早上就看到老哥的主题了,缘分哪,持续关注
qiaogaojian
2019-09-11 11:23:56 +08:00
先回复 养肥在看
allgy
2019-09-11 11:35:52 +08:00
支持
LeeChP
2019-09-11 12:17:19 +08:00
插眼插眼
Varchar
2019-09-11 14:26:48 +08:00
支持下
BirlGoy
2019-09-11 18:28:04 +08:00
@ipwx 有道理。好奇心是程序员最最宝贵的品质。
webshe11
2019-09-12 06:10:44 +08:00
这个博客的标题吓我一跳
gansteed
2019-09-12 09:30:13 +08:00
@qiaogaojian
@allgy
@LeeChP
@Varchar 感谢支持
@webshe11 和“编程随想”无关的哈哈哈
kuroismith
2019-09-12 10:17:35 +08:00
推荐工作经验不足的朋友看看 redis 源码, 常见数据结构在 redis 里都有对应的实现, 而且相当简洁, 没什么骚操作.
如果直接源码看不进去可以买本 redis 设计与实现, 写的比较清楚. redis 在业务中很常用, 方便和实际场景结合去理解.

看完了再看 java / c++ 的标准库里面的实现, 就差不多了.
boboyangmoumou
2019-09-16 10:03:53 +08:00
我要关注收藏,没事看看还不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/599481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX