摘要: 编译器对递归调用是有限制的,因为每递归一次都需要把函数内的变量压栈,如果栈空间不够,就会死机。 阅读全文
posted @ 2015-04-16 22:34 hy1hy 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 一、C、C++程序编译时内存分为5大存储区:堆区、栈区、静态区(全局区)、文字常量区(储存字符串常量)、程序代码区(存放二进制程序)(1)静态存储区域: 静态存储区域的内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static... 阅读全文
posted @ 2015-04-16 22:25 hy1hy 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1.迭代器类型· Input iterators(输入) 提供对数据的只读访问。· Output iterators(输出) 提供对数据的只写访问。· Forward iterators(正向) 提供读写操作,并能向前推进迭代器。· Bidirectional iterators(全向) 提供读写操... 阅读全文
posted @ 2015-04-16 22:11 hy1hy 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的... 阅读全文
posted @ 2015-04-16 19:37 hy1hy 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。int quickSort(i... 阅读全文
posted @ 2015-04-16 19:11 hy1hy 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。void ... 阅读全文
posted @ 2015-04-16 18:44 hy1hy 阅读(116) 评论(0) 推荐(0) 编辑
摘要: void insertSort(){ int a[10]={10,2,3,5,8,9,7,1,55,6}; int nVal=0; for(int i=1; i=0&&nVal=low&&nVal=high+1&&nVal<a[j] ) { a[j+1]=a[j]; ... 阅读全文
posted @ 2015-04-16 18:32 hy1hy 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 后序遍历按照“左孩子-右孩子-根结点”的顺序进行访问。1.递归实现void postOrder(BinTree* root){ if(root!=NULL) { inOrder(root->lchild); inOrder(root->rchild); coutdata; }... 阅读全文
posted @ 2015-04-16 17:54 hy1hy 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 中序遍历按照“左孩子-根结点-右孩子”的顺序进行访问。1.递归实现void inOrder(BinTree* root){ if(root!=NULL) { inOrder(root->lchild); coutdata; inOrder(root->rchild); }}2... 阅读全文
posted @ 2015-04-16 17:45 hy1hy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。1.递归实现void preOrder(BinTree* root){ if(root!=NULL) { coutdata; preOrder(root->lchild); preOrder(root->rchild); ... 阅读全文
posted @ 2015-04-16 17:39 hy1hy 阅读(214) 评论(0) 推荐(0) 编辑