嗯,那些待我挑战的一些东西(在完成《数据结构》这本书后当做复习&提升的目录)

来源:互联网 发布:天敏网络机顶盒无信号 编辑:程序博客网 时间:2024/05/01 17:03

1栈的面试题&卡塔兰数

http://www.cnblogs.com/MichaelYin/archive/2011/10/10/2206532.html
http://www.cnblogs.com/MichaelYin/archive/2010/12/23/1915316.html
http://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0
http://blog.csdn.net/hackbuteer1/article/details/7450250
http://blog.csdn.net/duanruibupt/article/details/6869431

2树

http://www.cnblogs.com/heqile/archive/2011/12/08/2280120.html
B树的插入删除&B  R 树  http://blog.csdn.net/v_july_v/article/details/6530142#t2
B树的C实现  http://blog.csdn.net/v_july_v/article/details/6735293
伸展树http://blog.csdn.net/crazy_ac/article/details/8034264     http://blog.csdn.net/crazy_ac/article/details/8034256   http://www.lydsy.com/JudgeOnline/problem.php?id=1500

3计算机内存

线性结构的处理http://blog.csdn.net/feixiaoxing/article/details/6847808

4Hash实现

http://blog.csdn.net/v_JULY_v/article/details/6256463
5堆的一个用法

典型利用:

选择问题:输入N个元素以及整数K,这N个元素的集可以是全序的,找出第K个最大的元素;

算法一、

  把这些元素排序,返回第K个值,通过各种排序算法;

算法二、

  将K个元素读入数组,并将其排序,从大到小,最小的元素在第K个位置上。然后一个一个处理剩余的元素。当一个元素处理时,它先与数组中的第K个数比较,如果该元素大,将第K个数删除,将它插入到剩余的K-1个队列中,算法结束时,数组上第K个位置上的元素就为所求;该算法的时间复杂度为O(N*K);

     注意:对于任意的K,我们可以求解对称问题,找出第(N-K+1)个最小元素。从而中位数K=N/2是时间使用最多的所求元素;

算法三、

  将N个元素建堆,执行K次DeleteMax操作。


0 0
原创粉丝点击