1、 BST,难点是节点删除时树的调整。
2、 AVL、红黑树、B树、B+树,这里比较难,如果不想看,那就赌一把吧。
3、 链表、队列、栈,包括链表实现栈、两个队列实现栈、两个栈实现队列等,直接写出代码是基本的,写不出来至少能说出算法吧。
4、 堆,建堆与调整,这个有点难,问的比较少。
5、 排序,快排、归并、插入比较常见,希尔、桶排序、基数排序较少见,默写代码是基本,注意,是默写……当然,复杂度分析必不可少,尤见于百度面试。
6、 检索,二分我就不说了。
7、 需要知道并会应用的,bitmap、hash等。
8、 递归,太多了。
9、 动态规划,最长子序列、最长子串之类的。
10、贪心,框地花费最小等。
11、海量数据的处理,百度面试必问,参考解决方案google之。
12、这部分我的参考资料包括,《编程珠玑》、《编程之美》、各个笔试面试题blog、各大论坛的历年笔试面试题等。