我觉得这个主题可以理解成 Python 中的数据结构,也可以理解成数据结构——用 Python 实现。如果按第一种讲呢,就是讲讲 Python 的内置数据结构,再加 collections 包里面的几个数据结构我觉得就行了(其实我想讲内置数据结构在 Python 源码中的实现,但能力不足时间也不够了,🐶);如果按第二种讲呢,打算讲讲跳表和优先队列,重点是数据结构,只是用 Python 实现的。大家有啥想法?不按照我说的这两种讲只要切合主题就没问题。PS:下下周就要讲,我还没做任何准备,只是想了想内容
1
wangxn 2021-03-06 18:01:30 +08:00
说实话,我是从这里第一次真正知道跳表这个数据结构,教科书中貌似都是着重说 B/B+树。
个人感觉这个主题不够吸引人,第一种基本就是介绍文档了;第二种就像让大家再上一次《数据结构》…… |
2
zhoudaiyu OP @wangxn 当时就想装个 B 讲点复杂的数据结构🐶,后来活太多也没时间准备了,只能找点简单的讲讲了
|
3
renmu123 2021-03-06 18:15:48 +08:00 via Android
不建议将跳表这种基本用不到的东西,不如好好讲一下大家都用得到哈希表的原理以及实现,或者各种链表结构,或者哈夫曼编码以及应用,但是听起来这个主题就很无聊。
|
4
wangxn 2021-03-06 18:22:06 +08:00 1
感觉可以穿插点最佳实践之类的内容,比如怎样高效遍历( itertools 模块),怎样用函数式编程的风格来操作它们,怎样定义节点以更好地节省内存,是否可能出现循环引用,是否会出现“内存泄漏”之类的内容。
|
5
zhoudaiyu OP @renmu123 其实,这个技术分享就有点让大家讲点难一点的东西,不过老哥说的这个哈希表确实很重要,考虑把跳表换成这个
|
7
MoYi123 2021-03-06 18:57:53 +08:00
from functools import lru_cache 里的链表的实现可以一讲,用了一个比较少见的 python 写法。
root = [] # root of the circular doubly linked list root[:] = [root, root, None, None] # initialize by pointing to self |
8
zhoudaiyu OP |
9
darknoll 2021-03-06 19:35:37 +08:00 via Android
又不是着急去面试,这玩意谁会听啊,整些实用的不好吗?
|
11
lambdafate 2021-03-06 20:22:13 +08:00
不建议讲跳表。可以讲讲并查集,线段树等高级一点的数据结构,然后再从 LeetCode 找几道例题当场 AC
|
12
heyjei 2021-03-06 20:32:00 +08:00
当然是第一种,能够把 Python 的内置数据结构讲透也是一件不容易的事,特别是一些使用上的代码陷阱。
|
13
MicroBotter 2021-03-06 20:50:08 +08:00
你是不是在 SUSE 工作呀?
|
14
zhoudaiyu OP @MicroBotter 真高看我😂为啥你会认为我在 SUSE
|
15
zhoudaiyu OP @lambdafate 跳表不太高级是嘛😂我就看 redis 用了跳表
|
16
MicroBotter 2021-03-06 20:55:09 +08:00
@zhoudaiyu 因为有个人和你用差不多的头像、语气、和名字,都是什么 Zhou 。。。。github.com/AlynxZhou
|
17
zhoudaiyu OP @MicroBotter 😨我可够不上 SUSE
|
19
calmzhu 2021-03-06 21:02:36 +08:00
不如
讲下脑子怎么抽的? |
20
zhoudaiyu OP @calmzhu 领导使了一诈,说所有人都得讲,先确定讲什么的,就把坑占了,后续的就不能再讲这个了,但是后来有好多人就没搭理他,也就不用讲了...
|
21
Samuelcc 2021-03-07 20:09:08 +08:00 via Android 1
这个题目有点大啊 挺难的
技术分享个人觉得要讲得深,打破砂锅一层层讲,而且得百问不倒,简单地归纳一些网上的资料没什么实际意义 |
22
helloworld2076 2021-03-08 08:11:45 +08:00 via iPhone
@zhoudaiyu
zhou,世界上的另一个我 |