基础班最新的练习是:实现一个纯函数式的 AVL 平衡树。
在大学里上数据结构课,写 AVL 树还是挺烧脑的,过后一般很快就忘了怎么写。而数据结构课,一般是要已经上过了入门编程课之后,才能上的,一般是在大二的时候。
我的基础班上,零基础的同学到了第 5 课就写这种东西,而且还是“纯函数”的版本。也就是说,当新的 key-value 加进去之后,原来的树还在,并没有被修改。只是产生了一棵新的 AVL 树,里面含有新的 key-value。这样保留了所有的历史数据,却又没有特别浪费存储空间。这种数据结构,在通常的数据结构领域,叫做 persistent data structure,曾经有一段时间这个领域比较热门,而且它已经被大量用在了“云存储”等实用领域。
这种东西在一般公司里,有多少程序员能写出来?我心里是比…