字符串处理常用函数
摘要:#include using namespace std;int main(){ char message1[]="Original message"; strcpy(message1,"different");//different0essage0 cout<<message1<...
阅读全文
判断两棵二叉树是否相等
摘要:#include using namespace std;struct TNode{ TNode * LeftChild; TNode * RightChild; char data;};TNode *CreateTree(){ TNode *pRoot=NULL; c...
阅读全文
约瑟夫环
摘要:约瑟夫环,已知n个人,(编号从1、2、3、4......n),围在一张圆桌上,从编号为startnum的人开始报数,报到outnum的人出列,接着从下一个人开始从1报数,数到outnum的人又出列;依次规律重复下去,知道所有人全部出列,请写出出列的依次序号数。 这是一个约瑟夫环问题,用单链表来...
阅读全文
自加++
摘要:i++使用后加1++i使用前加1那么 int a=++i + ++i;是怎么样计算的呢?++i;++i;a=i+i=2+2=4;而i++是如何计算的呢a=i++ + i++;先执行a=i+i;然后i++;i++;让我们看下面的代码// 例1#include #include using namesp...
阅读全文
C中的volatile关键字
摘要:volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在D...
阅读全文
继承权限问题
摘要:继承权限分为public protected private,其权限见下表: 特征 公有继承 保护继承 私有继承 父类公有成员继成 派生类公有成员 派生类保护成员 派生类私有成员父类保护成员继成 派生类保护成员...
阅读全文
父类子类指针相互转换问题
摘要:1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的:2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的;3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时,父类指针...
阅读全文
函数指针用法(回调函数)
摘要:#include #include using namespace std;int sub(int a,int b){ return a+b;}int mul(int a,int b){ return a*b;}int di(int x,int y){ assert(y!=0); ...
阅读全文
float和double类型的存储方式
摘要:Float double 类型在计算机的存储方式 计算机中只认识10的二进制数,那么该如何存储小数呢? 那么我们先看Floa类型:Float在计算机(32位)中是4个字节的,具体地:第一位为符号位0为正,1为负 第2到第9位为指数位,第10到32位为尾数位,具体地如下图所示:1291032现在我们举...
阅读全文
二叉树
摘要:更多二叉树相关概念请看http://blog.csdn.net/zhang_xinxiu/article/details/12904635一、二叉树相关概念:路径:对于节点n1 n2 n3….nk从n1到nk的路径长度为k-1节点的层数:只有一个根节点,则层数为1,其余节点的层数为双亲节点的层数加1...
阅读全文
排序
摘要:1.选择排序 选择排序的基本原理是:每次找出最小的元素放到前面,具体的: 对于一组给定的记录a1,a2,a3.......an; 第一次循环:从a2开始到an,依次和a1进行比较,找到小于a1当中最小的一个,与a1进行交换,否则不交换; 第二次循环:从a3开始到an,依次和a2进行比较,找到...
阅读全文
二分查找
摘要:#include using namespace std;//二分查找算法实现int BinarySearch(int a[],int len,int findnum){ int low = 0; int high = len - 1; while(low fin...
阅读全文
队列(顺序)
摘要:顺序队列是一段连续的地址,但是存在假溢出情况,所以要用循环队列来实现,具体操作像钟表下面是顺序队列的表示与实现:#include using namespace std;//顺序循环队列的基本表示和实现const int MAX_SIZE = 100;//定义队列长度struct SqQueue{ ...
阅读全文
队列(链式)
摘要:队列,是一种先进先出的线性表,它只允许在队头删除,在队尾插入,链式队列和单链表操作类似,但是有队首指针和队尾指针,下面是链式队列的表示和实现:#include using namespace std;//队列的链式表现与实现struct QNode{ int data; QNode *n...
阅读全文
顺序栈与链式栈
摘要:栈是限定尽在表尾进行插入或者删除操作的线性表,分为顺序栈和链式栈。 对于malloc()一次申请的内存地址,在逻辑上是连续的,也就是我们用的时候可以当做连续的来用,但是在物理内存上未必是连续的; 顺序栈: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶...
阅读全文
华为上机题
摘要:1.解析9进制,11进制的字符串为10进制的数字输出,输入的字符串有效位(0v0012345678)长度不超过8位,前面的00不算做有效位。解析后以10进制的数字输出。如果解析到非法字符串则返回-19进制:9进制的数的范围:0,1,2,3,4,5,6,7,89进制的开始为:0V或者0v9进制的正确实...
阅读全文
字符串操作
摘要://如何实现字符串所有组合 //例如 输入abc 输出a b c ab ac bc abcvoid subset(int n,vectorc) { for(int i= 1 ; i ch; while ((c=getchar())!='\n') //注意这里的输入结束判断 ...
阅读全文
单链表
摘要:数组和链表对比有什么优势和缺点?A 从逻辑结构来看A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数,出现溢出现象;当数据减少时,造成内存浪费。数组中插入、删除数据项时,需要移动其它数据项。A-2. 链表动态地进行存储分配,可以适...
阅读全文