摘要: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如将二元查找树 10 / / 6 14 / / / / 4 8 12 16 转换成双向链表。 4=6=8=10=12=14=16。声明:思想不是原创。方法一:其思想是分别转换左右子树成双向链,再通过根节点进行连接[cpp]view plaincopy#includeusingnamespacestd;structBSTree{intnum;BSTree*left;BSTree*ri... 阅读全文
posted @ 2013-09-26 21:56 木小若 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 排序算法很早就开始接触,但全部记住并瞬间写出来也是有点困难。排序算法更多的是给我们提供了一种思路。常见的有:归并排序、快速排序、堆排序,以及较为简单的冒泡排序、选择排序、插入排序、希尔排序等。近日回味,发现中国IT实验室的一个教程较为详细明了,现转载如下。但是其中的归并排序代码的合并部分有个小问题,读者自行发现。排序算法的复杂度及思想:补:二路归并排序的时间复杂度为O(nlogn),把待排序序列分成相同大小的两个部分,依次对这两部分进行归并排序,完毕之后再按照顺序进行合并。各排序算法的详细介绍及代码实习见:http://c.chinaitlab.com/special/cpxsf/index. 阅读全文
posted @ 2013-09-26 21:32 木小若 阅读(111) 评论(0) 推荐(0) 编辑