c++
文章平均质量分 90
ShanLanX
这个作者很懒,什么都没留下…
展开
-
c++单循环实现二叉树的前,中,后序,层次遍历
二叉树遍历如果使用递归实现是比较容易懂的,但是如果使用循环便没那么容易。以前刚看二叉树时觉得递归很简单就解决了,其实心里是知道的,函数在递归调用时使用堆栈存放了大量数据,如果递归层次过深将会导致内存爆掉,所以真正要用起来还得使用循环才行。今天就试试使用单循环来实现二叉树的遍历,至于为什么是单循环,因为这样感觉更符合遍历的路径逻辑(每个节点经过三次嘛,是个闭环),为了彻底弄懂,我们来一步一步进行原创 2018-01-04 17:34:47 · 564 阅读 · 0 评论 -
大小堆的实现(C++)
过了一段时间了,还是记录一下,最近感觉记忆力下降的很快啊。大小堆的构造首先得知道大小堆是个什么,大小堆是一种二叉树,它的要求比起平衡树来说是简单一些的,只有一个,就是所有父节点必须大于自己的子节点,但是没有什么左孩子必须小于右孩子这种。到这里其实大小堆的作用很容易看出,最大堆就是根节点最大,最小堆就是根节点最小,可以用于排序。作为测试,这里使用整形数组作为初始化数据,二叉树可以直接使用c++单循环...原创 2018-03-02 20:24:50 · 5729 阅读 · 0 评论 -
各排序算法循环版本(C++)
排序也是一种基础,让我们来看看,此外这里都是默认升序排序。冒泡排序假设数组v大小为n,v[i]与v[i+1]比较,如果v[i]大就交换,第一趟循环结束,v[n-1]必定为最大,第二趟v[n-2]必定第二大,以此类推void bubble_sort(std::vector<int>& v){ for (size_t i = v.size(); i > 1; i--) ...原创 2018-03-03 15:37:12 · 519 阅读 · 0 评论