主帖 5 条回复 手写红黑树是不可能完成的任务么? tinyfool · 2017年03月01日 · 阅读 4 · 无人欣赏。 红黑树确实很复杂,以我目前的能力要对照课本写才能写的出来,手写,你可以做到么? 在黑板上写呢?
#2 pinxue 2017年03月01日 发明一个算法是挺难的,实现一个算法就是普通人也能做的工作了,写一个比较好的实现则需要相当的经验。 如果描述只有一个名字,写的人正好又没记住对应的是什么,相当于要人发明这个算法。 如果这人只记得或者收到了算法原理的描述,那么只是推导一个实现。为难之处主要就是各种边界条件处理要周全,以及找出较为优化的实现方式。例如,看似简单的二分查找算法发布之后,没有 bug 的实现12年之后才搞出来。 如果这个人正好刚学过或者才折腾过,能记住详情,那就只是个体力活罢了。 欣赏 0 反对 0 回复本楼
#3 tutulyy 2017年03月01日 这个要分情况讨论。 1、对于算法不了解。 这个难点在于删除节点和增加节点的时候,二叉树的调整方式。往往可能前一秒看资料的时候懂了,但是隔半个月就忘了,主要还是不熟练、使用频次太低造成的。 2、对于语言操作不熟练。 这个说白了就是逻辑性复杂的代码写太少。大脑对于存放指针、索引这些东西的堆栈溢出了,说通俗点就是脑子不够用了。就像下棋和打牌,如果你习惯了算后3步,但是突然有一天让你算后6步就会算不过来,感觉脑子很累。 最后讲一下红黑树,个人认为红黑树是对于AVL平衡树的一种剪枝,如果能手写出AVL平衡树然后再去手写红黑树会比较简单。 欣赏 0 反对 0 回复本楼
#5 pinxue 2017年03月03日 4楼 @ffeitian 不用有一天,理解这些数据结构和相应算法并没多难,甚至不需要会写程序。问题是,满足于知道个新名词或者上来给自己设置个“这很难”的心理障碍,就真的难喽。 欣赏 0 反对 0 回复本楼