c++
cColdTea
再丑也要擦口红
展开
-
queue与stack遇到的错误
若队列或栈里不存在元素,取首元素,会弹出,意为超出边界若pop()操作,会弹出原创 2017-05-23 21:16:30 · 328 阅读 · 0 评论 -
二叉树的中序遍历实现
中序遍历的递归实现中序遍历遍历指的是先访问二叉树中节点的左孩子,再访问当前节点,最后再访问其右孩子。具体访问步骤如下:首先访问根节点,判断根节点是否有左孩子,如果有,进行第二步;如果没有,跳到第三步;访问左孩子,继续判断当前节点是否有左孩子,如果有则继续访问其左孩子,直到某节点的左孩子为空判断是否有右孩子,如果有,则继续判断当前节点是否有左孩子,一直到某节点没有左孩子为止把第二步访问的转载 2017-06-01 08:59:56 · 672 阅读 · 0 评论 -
数据类型
整理一下几种数据类型的范围。 整型[signed]int -2147483648~+2147483648 (-2^31~2^31) 无符号整型unsigned[int] 0~4294967295 (0~2^32) 短整型 short [int] -原创 2017-05-22 09:50:44 · 184 阅读 · 0 评论 -
vector使用说明
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2017-06-02 15:40:46 · 991 阅读 · 0 评论 -
堆溢出与栈溢出原因分析
堆溢出:不断的new 一个对象,一直创建新的对象,栈溢出:死循环或者是递归太深,递归的原因,可能太大,也可能没有终止。在一次函数调用中,栈中将被依次压入:参数,返回地址,EBP。如果函数有局部变量,接下来,就在栈中开辟相应的空间以构造变量。举例如下:那么堆栈是什么?如果计算机是一个白领的话,那么堆栈就是他的办公桌。为了完成老板(程序)交代的工作,这个白领需要从书架或者柜子里拿出资料出来转载 2017-06-02 16:06:15 · 17658 阅读 · 4 评论 -
CBT
对于一个完全二叉树的层序遍历而言,其中的任何一个结点的编号为x(根结点编号为1),其左孩子结点编号为2x,右孩子结点编号为2x+1。而中序遍历就是将所有元素由小到大排列。原创 2017-06-02 16:52:17 · 723 阅读 · 0 评论 -
AVL的c++详解——插入
AVL 树是带有平衡条件的二叉查找树,所谓的平衡条件就是每个节点的左子树和右子树的高度最大差别为1。平衡二叉树的实现大部分过程和二叉查找树是一样的,区别在于要时刻保持树的平衡,所以在插入和删除之后要添加一个旋转算法来保持平衡,保持平衡需要借助一个节点高度的属性。一、AVL 节点[cpp] view plain copy print?c转载 2017-06-03 10:28:48 · 341 阅读 · 0 评论 -
AVL的c++详解——删除
前面介绍了平衡二叉树的插入操作:平衡二叉树的插入,这里来介绍平衡二叉树的删除,平衡二叉树是一棵带有平衡条件的二叉查找树,其删除操作是在二叉查找树的基础上添加平衡调整算法。二叉查找树的删除操作参见博文:二叉查找树的删除(第七点)先看一下示意图()[cpp] view plain copy print?/*二叉查找树的性质转载 2017-06-03 10:29:24 · 763 阅读 · 0 评论 -
几种主要的排序方法
现在常用的几种排序方法为:1、快速排序选一个基准数字(一般是第一个),然后将这个数字取出,right指针从右往左扫描,若小于改值,则放在该值的位置,然后left指针从左往右扫描,若大于该值,则放在right指针的位置图解快速排序2、堆排序先建立一个二叉堆,然后每次取最大的元素放到最后面,然后再进行堆排序白话经典算法系列之七 堆与堆排序堆排序一原创 2017-10-16 18:28:35 · 349 阅读 · 0 评论 -
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Mac终端运行mysql出现Can't connect to local MySQL server through socket '/tmp/mysql.sock'今天突然出现了这个问题,然后按照这个教程解决了。忙起来了,感觉实习就是数据库连接员,还是希望能够做好吧,一忙起来智商就不够了。转载 2017-12-14 00:55:58 · 220 阅读 · 0 评论 -
二叉树的后序遍历实现
后续遍历的递归实现后续遍历指的是先访问节点的左右孩子,最后访问节点本身。所以使用后序遍历得到的结果的最后一个节点就是根节点。采用后续遍历的具体步骤如下:先访问根节点,如果有左孩子,进入第二步;如果有右孩子,进入第三步对左孩子继续判断其是否有左孩子,直到某节点的左孩子为空,设为cur节点对右孩子继续判其是否有左孩子,直到某个节点的左孩子为空,设为curR节点cur节点访问之后,访问其转载 2017-06-01 08:58:00 · 1077 阅读 · 0 评论 -
getchar()无用
int n, step = 0;scanf("%d", & n);getchar();此处回车输入后,弹出的窗口并不会停留。解释如下: 因为scanf后,你必须要回车刷新输入缓冲区才能使程序接受值,而这个回车符是作为一个字符被留在输入缓冲区里的,加了那个getchar()刚好读取那个回车符,所以要用两个getchar();才能实现你希望的程序等待输入的状态。 改成如下就可以。int n, st原创 2017-05-20 15:12:01 · 2107 阅读 · 0 评论 -
动态链表与静态链表
动态链表与静态链表一. 静态链表在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址.#define MAXSIZE 100; typedef struct{ ElemType data;转载 2017-05-23 21:34:11 · 318 阅读 · 0 评论 -
注释规范
转载地址1: http://blog.csdn.net/scythe666/article/details/48177605转载地址2: http://blog.csdn.net/lincyang/article/details/6020785二、具体规范有的项目可能要求注释占到总行数的额50%。2.1 源文件头部注释Ø 列出:作者、编写日期和描述。转载 2017-05-24 08:54:32 · 361 阅读 · 0 评论 -
sort函数
函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_copy 对给定区间复制并排序 nth_element 找出给定区间的某个位置对应的元素 is_sorted 判断一个区间是否已经排好序 partition原创 2017-05-24 18:15:37 · 382 阅读 · 0 评论 -
C++中数组、链表和vector等容器之间的区别
1. 各个容器之间区别① vector (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销。② deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有v转载 2017-05-25 09:05:23 · 2773 阅读 · 0 评论 -
DFS算法
今天做的DFS算法题目,牢牢把握dfs每次达到允许条件就递归,不然就回溯然后跳出本次函数 这个原理原创 2017-05-25 10:54:43 · 620 阅读 · 0 评论 -
c++中的取址操作符&
最近在看数据结构,有一段类函数封装的例程,然后对取址操作有一些不理解。 class IntCell { public: explicit IntCell(int initialValue = 0) { storedValue = new int(initialValue); } int read() const { return *storedValue; } void wr原创 2017-05-18 19:45:47 · 1363 阅读 · 0 评论 -
createTree
这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都转载 2017-05-31 17:38:52 · 2328 阅读 · 3 评论 -
详解c++指针的指针和指针的引用
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组)为什么需要使用它们当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来的值。我们用下边的代码转载 2017-05-31 19:20:48 · 220 阅读 · 0 评论 -
头文件集锦
判断isalpha字母或 isspace空格时,需要在头文件中加入:#include "ctype.h"原创 2017-05-20 11:02:05 · 262 阅读 · 0 评论 -
自动正则表达式生成网站
直接给网站:http://www.txt2re.com/index-python.php3进去了就会操作,先输入一个待匹配的例子,然后match,在step2里面选择字符,最后在step3里面选择语言就可以了。方便很多,不用每次都查半天。原创 2017-12-07 11:10:05 · 13786 阅读 · 0 评论