随笔分类 -  C/C++

摘要:头文件:#include[cpp]view plaincopypid_tfork(void);1. 创建一个子进程,失败返回-1。2. 调用一次,返回两次。分别在父子进程中返回子进程的PID和0。利用返回值的不同,可以分别为父子进程编写不同的处理分支。[cpp]view plaincopy#incl... 阅读全文
posted @ 2015-07-29 14:20 朱传林 阅读(268) 评论(0) 推荐(0)
摘要:一、题目描述大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。c++: bool isPalindromeNumber(lon... 阅读全文
posted @ 2015-07-29 10:51 朱传林 阅读(410) 评论(0) 推荐(0)
摘要:1.使用控制符控制输出格式控制符作用dec设置整数的基数为10hex设置整数的基数为16oct设置 整数的基数为8setbase(n)设置整数的基数为n(n只能是16,10,8之一)setfill(c)设置填充字符c,c可以是字符常量或字符变量setprecision(n)设置实数的精度为n位。在以... 阅读全文
posted @ 2015-07-27 12:27 朱传林 阅读(167) 评论(0) 推荐(0)
摘要:C++中产生随机数种子对于初学者一直都很困惑.大家知道,在C中有专门的srand(N)函数可以轻松实现这一功能,然而在C++中则要复杂一些.下面是笔者学习的一点心得,希望对大家能有所帮助.(这里我们依然要借助C标准库中的rand()函数) 函数说明:int rand();:返回从[0,MAX)之间的... 阅读全文
posted @ 2015-07-27 12:24 朱传林 阅读(158) 评论(0) 推荐(0)
摘要:题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为18的数组{1,0,2,6,1,0,1,1,5,2,1,1,1,3,1,1,5,1}, 由于数组中数字1出现的次数超过数组的长度的一半,因此输出1。1)最直接的办法是先把数组排序,那么超过一半的元素一定是数组最中间... 阅读全文
posted @ 2015-07-09 15:38 朱传林 阅读(229) 评论(0) 推荐(0)
摘要:#include using namespace std;typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;class solution{public: bool searchBst(... 阅读全文
posted @ 2015-07-09 11:18 朱传林 阅读(187) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/tianshuai1111/article/details/7674327一,巡防算法 for_each(容器起始地址,容器结束地址,要执行的方法)[html]view plaincopy#include#include#includeusing... 阅读全文
posted @ 2015-07-07 21:37 朱传林 阅读(257) 评论(0) 推荐(0)
摘要:为了避免混淆,做如下规定,以下代码若不加特殊说明都运行于32位平台,结构体的默认对齐值是8,各数据类型所占字节数分别为char占一个字节int占四个字节double占八个字节。两个例子请问下面的结构体大小是多少?struct Test{ char c ; int i ;};这个呢?str... 阅读全文
posted @ 2015-07-03 09:07 朱传林 阅读(136) 评论(0) 推荐(0)
摘要:1、sizeof是运算符,strlen是函数;2、sizeof可以用类型作为参数,而strlen只能用char*型量作为参数,且必须以‘\0’结尾; sizeof(int)=4;3、数组名作为sizeof的参数时,不会退化为指针,而作为函数的参数的时候会退化为指针; char a[10]="abc... 阅读全文
posted @ 2015-07-03 09:05 朱传林 阅读(111) 评论(0) 推荐(0)
摘要:/*字符串匹配*/#includeusing namespace std;void get_next(string T,int *next){//朴素算法 int i,j; i=1; j=0; next[1]=0; while(iT.length()) return i-T.length(); e... 阅读全文
posted @ 2015-07-01 16:41 朱传林 阅读(130) 评论(0) 推荐(0)
摘要:主要是栈的应用,里面有两个函数deleteSpace(),stringToDouble()在我另一篇博客当中:对string的一些扩展函数。 本程序只是基本的功能实现,没有差错控制。#include#include#include#include#include"fstring.h"/* ... 阅读全文
posted @ 2015-07-01 14:41 朱传林 阅读(170) 评论(0) 推荐(0)
摘要:排序算法复习大致结束了,主要有以下几种:冒泡排序、选择排序、简单插入排序、希尔排序、归并排序、快速排序、堆排序。#include #define MAXSIZE 1000using namespace std;class SqList{public: SqList():length(0){} Sq... 阅读全文
posted @ 2015-06-30 08:43 朱传林 阅读(194) 评论(0) 推荐(0)
摘要:堆的定义:1)完全二叉树,2)每个结点的值都大于其左右孩子结点的值。根据堆的定义可知,最大值就是根结点,其次就是根结点左右孩子结点中的一个…… 堆排序有两个很重要的过程:1)建堆,2)堆维护。实质上,这两个过程都可以通过一个函数来实现。void HeapAdjust(SqList* l... 阅读全文
posted @ 2015-06-30 08:41 朱传林 阅读(155) 评论(0) 推荐(0)
摘要:快速排序将以枢轴为界,将原数组分为两个部分,枢轴以前,值都小于枢轴的值,枢轴以后的值都大于枢轴。 采用递归的方法,对以枢轴为界的两个子序列进行快速排序,直至子序列长度为1。 1、快速排序的关键是枢轴的选取,主要有三种方法:1)选取第一个或最后一个作为枢轴值;2)采用随机数生成器,生成枢... 阅读全文
posted @ 2015-06-30 07:59 朱传林 阅读(289) 评论(0) 推荐(0)
摘要:归并排序原理即将两个有序的数组合并成一个,归并排序有两种方法:递归和循环。/*递归方法*/void Merge(int TR1[], int TR2[], int low, int mid, int high){//将TR2归并入TR1中 int pos1 = low; int pos2 = mid... 阅读全文
posted @ 2015-06-29 16:46 朱传林 阅读(156) 评论(0) 推荐(0)