Cplusplus Program
文章平均质量分 74
过往记忆
这个作者很懒,什么都没留下…
展开
-
C++读写文件
#include#includeusing namespace std;int main(){ const int SIZE = 5; fstream inData; inData.open("rubbish.dat", ios::out | ios::binary); double array[SIZE] = { 1.2, 2.3, 3.4,原创 2012-03-24 19:43:46 · 4952 阅读 · 0 评论 -
[ACM]在命令行以LED样式显示输入的数字
昨天,一个同学和我说了一道ACM题目,说很有趣,于是乎我就听了他给我介绍了题目的要求:每行输入两个数如下所示:1 1234567890输出: 2 1234567890输出3 1234567890输出我想我图贴到这里大家应该知道题目的要求了吧。分析:上面的数字输出有点想LED数字输出,不知原创 2012-09-10 14:13:35 · 33743 阅读 · 5 评论 -
用01背包解决石子归并问题
题目:有一堆石头质量分别为W1,W2,W3...WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。 这道题目可以用01背包问题来解决。即求出和最接近sum/2的一个子集 令f(i, j)表示前i个元素中和最接近j的子集的和(有点绕),则有: f(i, j) = max( f(i-1, j), f(i-1, j-a[i])+a[i] ) ,其中a数组是用来原创 2012-09-28 16:12:52 · 9295 阅读 · 2 评论 -
小米2013校园招聘笔试题
题目:一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个。比如数组元素为【1, 2,4,5,6,4,2】,只有1,5,6这三个数字是唯一出现的,我们只需要输出1,5,6中的一个就行。下面是我的思路:这个数组元素个数一定为奇数,而且那要求的三个数一定不可能每一bit位都相同,所以我们可以找到其中一个bit位不同,可以把那三个数字分出来,而且可以很推出三个数肯定可以分到原创 2012-09-29 17:10:34 · 32134 阅读 · 74 评论 -
C++虚函数
有虚函数的类内部有一个称为“虚表”的指针,这个就是用来指向这个类虚函数。也就是用它来确定调用该那个函数。例如:#include using namespace std;class A{public: virtual void fun1(){ cout << "In class A::fun1()!" << endl; } virtual void fun2(){ cou原创 2012-04-25 09:44:29 · 4356 阅读 · 1 评论 -
Implement your own short url
Short URL or tiny URL is an URL used to represent a long URL. For example,http://tinyurl.com/45lk7x will be redirect to http://www.snippetit.com/2008/10/implement-your-own-short-url.There ar翻译 2012-04-27 13:43:53 · 9295 阅读 · 4 评论 -
又一道编程面试题
题目以及要求:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 我的实现类似冒泡排序。#include #include // Author: 397090770// E-mail:wyphao.2007@163.com// Date: 2012/09/29 //题目以及要求:把一个字符串的大写字母放到字符串的后面,//各个字符的相原创 2012-09-29 00:32:24 · 24629 阅读 · 40 评论 -
字符串相似度计算
已迁移到:http://www.wypblog.com/archives/58思想是编程之美上面的,我只是做了一点点优化。。。许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把“a”替换为“b”); 2.增加一个字符(如把“abdd”变为“aebdd”);原创 2012-10-14 22:33:43 · 13001 阅读 · 0 评论 -
将一个长度超过100位数字的十进制非负整数转换为二进制数(大数据处理)
已迁往:http://www.wypblog.com/archives/141题目描述:将一个长度超过100位数字的十进制非负整数转换为二进制数输出。输入:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出:每行输出对应的二进制数。样例输入:0138样例输出:01111000分析:这个数不应该存储到一个int类型变原创 2012-07-14 10:22:46 · 7521 阅读 · 0 评论 -
用分数形式精确表达有理数和循环无理数
已迁往:http://www.iteblog.com/archives/63学过计算机编程的就知道,在计算机中,浮点数是不可能用浮点数精确的表达的,如果你需要精确的表达这个小数,我们最好是用分数的形式来表示,而且有限小数或无限小数都是可以转化为分数的形式。比如下面的几个小数:0.3333(3) = 1/3的(其中括号中的数字是表示循环节)0.3 = 3 / 100.25 = 1 / 40. 28原创 2012-08-27 16:35:51 · 23625 阅读 · 36 评论 -
2013年各大IT公司研发类笔试题
不可以看见的部分请见http://www.wypblog.com/archives/262一、百度(武汉地区)第一部分:1、描述数据库的简单操作。2、描述TCP\IP四层模型,并简述之。3、描述MVC的内容。第二部分:1、给出a-z0-9,在其中选择三个字符组成一个密码,输出全部的情况,程序实现。2、字符串的反转,比如abcde,输出edcba.3、许多程序会大量使用字符串。对于不同的字符串,我们原创 2013-03-01 12:02:28 · 3587 阅读 · 4 评论 -
运用向量求10000!的阶乘
已迁往:http://www.wypblog.com/archives/61我们知道,电脑里面的10000的数阶乘结果肯定是不能用int类型存储的,也就是说,平常的方法是不能来求得这个结果的。下面,我介绍一些用向量来模拟这个算法,其中向量里面的每一位都是代表一个数。#include #include using namespace std;//就是n的阶乘 void calculate原创 2012-07-12 21:20:28 · 3488 阅读 · 0 评论 -
2012年腾讯招聘实习生笔试题
已移到:http://www.wypblog.com/archives/155程序的问题:已知数组a[n],求数组b[n].要求:b[i]=a[0]*a[1]*……*a[n-1]/a[i],不能用除法。 a.时间复杂度O(n),空间复杂度O(1)。 b.除了迭代器i,不允许使用任何其它变量(包括栈临时变量等)大家有什么解法?先不要看我下面的解法。希望大家讨论讨论一下,留个言,一起交流一下。下面给出原创 2012-04-11 13:59:02 · 6479 阅读 · 5 评论 -
再说C++模板类的一些使用技巧
已移到:http://www.wypblog.com/archives/184C++允许为模板类中的类型参数指定为一个迷人类型,例如:我们可以将int赋予通用类Stack中的类型参数T,作为默认类型,如下所示:templateclass Stack{//other operator};现在我们就可以像如下代码一样使用默认类型来声明模板类对象了:Stack但是需要注意的是,默认类型只能用于模板原创 2012-03-25 17:27:56 · 6621 阅读 · 3 评论 -
海量数据处理程序设计技巧(附C++代码)
已移到:http://www.wypblog.com/archives/158求解问题如下:在本地磁盘里面有file1和file2两个文件,每一个文件包含500万条随机整数(可以重复),最大不超过2147483648也就是一个int表示范围。要求写程序将两个文件中都含有的整数输出到一个新文件中。要求:1.程序的运行时间不超过5秒钟。2.没有内存泄漏。3.代码规范,能要考虑到出错情况。4.代码具有高原创 2012-03-23 18:29:44 · 10315 阅读 · 2 评论 -
【面试题】判断一个序列是不是栈的输出序列
题目描述:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5、6、7,那么2、1、4、3、7、6、5就有可能是一个pop系列。但序列4、3、5、1、2、7、6就不可能是push序列1、2、3、4、5的pop序列。问题分析:解决这个问题我们可以申请原创 2012-08-08 21:51:52 · 46485 阅读 · 13 评论 -
给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)
题目描述:给定a和n,计算a+aa+aaa+a...a(n个a)的和。输入:测试数据有多组,输入a,n(1输出:对于每组输入,请输出结果。样例输入:1 10样例输出:1234567900从题中就可以看出,当a = 9, n = 100的时候,一个int类型的数是存不下100位的数,所以不能运用平常的方法来求,下原创 2012-07-13 21:12:24 · 7731 阅读 · 2 评论 -
C++利用类建立链表
头文件#ifndef LIST_H#define LIST_Hnamespace wyp{ template class Node{ public: Node(const T& data, Node* link) : data(data), link(link){ } Node * getLink(){ return link; } cons原创 2012-03-23 21:08:13 · 5737 阅读 · 1 评论 -
C++模版树的建立
头文件:#ifndef TREE_H#define TREE_Hnamespace wyp{ template class SearchTree; template class TreeNode{ public: TreeNode() : data(NULL){ } TreeNode(T data, TreeNode *left, TreeNode原创 2012-03-24 11:01:22 · 5180 阅读 · 0 评论 -
C语言解析多格式的lrc文件
昨天写了一个程序,只能解析简单的lrc文件,今天我有修改了一些源程序,现在可以解析很多格式的lrc文件,并弄好歌词的顺序/*** create by: w397090770* Email:wyphao.2007@163.com* create data: 2012.3.27**/ #include //for printf,fgets... #include //for e原创 2012-03-27 15:01:31 · 6548 阅读 · 3 评论 -
C++重载[]数组操作符
#include#includeusing namespace std;class CharPair{public: CharPair(){ } CharPair(char first, char second): first(first), second(second){ } char &operator[](int index); private:原创 2012-03-18 14:46:15 · 6924 阅读 · 0 评论 -
c++重载自增和自减操作符
#include#includeusing namespace std;class Pair{public: Pair(int firstPart, int secondPart); Pair operator++(); Pair operator++(int); void setFirstPart(int firstPart); void setSecondPart(int原创 2012-03-18 14:39:16 · 7937 阅读 · 0 评论 -
编写自己的ls程序
本程序用来仿照linux中的ls -l命令来实现的,主要运用的函数有opendir,readdir, lstat等。代码如下:#include #include #include #include #include #include #include #include #include using namespace std;void getFileAndDir(ve原创 2012-04-03 16:15:47 · 5833 阅读 · 4 评论 -
树的中序非递归遍历和层次遍历实现
在树的中序遍历中需要用到栈,在层次遍历中需要用到队列,下面就是树的结构:代码实现:#include #include // TreeNode//////////////////////////////////////////////////////////////////////////typedef struct TreeNode{ char m_cVal;原创 2012-05-02 16:05:53 · 4542 阅读 · 0 评论 -
二叉树的建立、节点查找以及节点删除C和C++实现
程序是建立一颗二叉排序树,查找节点找到了返回其父节点,失败的时候返回NULL,删除节点分为四种情况:1、左子树和右子树都为空;2、左子树为空,右子树不为空;3、左子树不为空,右子树为空;4、左子树和右子树都不为空。C语言版本(利用结构体实现):#include #include typedef int DataType; typedef struct BTree{ DataT原创 2012-05-03 11:23:50 · 28042 阅读 · 4 评论 -
各种排序算法C++模版类实现
闲来无事,于是把常用的排序算法自己写了一遍,也当做是复习一下。/*************************************************************** * * * * * Date : 2012. 05. 03 * *原创 2012-05-05 16:36:40 · 6506 阅读 · 0 评论 -
二叉树的非递归前序、中序以及后序遍历C++模版类实现
#include using namespace std;/////////////////////////////////////////////////////////////////////////stack template class Stack{public: Stack(int size = 50); ~Stack(); void push(T* data);原创 2012-05-07 20:27:25 · 5130 阅读 · 0 评论 -
堆和栈的区别 [转贴]
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据翻译 2012-05-30 10:13:05 · 4927 阅读 · 1 评论 -
寻找二叉树两节点的最近的公共祖先[转载+整理]
1.树节点定义中带有parent指针struct TreeNode{ int data; TreeNode *left,*right,*parent;};算法思想:(1). p->parent(2). 将q的所有祖先节点依次和p->parent作比较,如果发现两个节点相等,则该节点就是最近公共祖先,直接将其返回。如果没找到相等节点,则转3翻译 2012-05-30 11:07:08 · 8088 阅读 · 1 评论 -
C++中如何使类不能继承 [转]
如何使类不能被继承 如果大家熟悉java的话应该知道java中有一种类不能被继承,那就是final类.这种类有很多用处,尤其是在大 的项目中控制类的继承层次. 使子类数量不至于爆炸.在使用了多继承的类层次中这也是防止出现菱形继承层次结构的一个好办法. 要实现一个不能被继承的类有很多方法. 主要的思路就是使子类不能构造父类的部分,这样子类就没有办法实例化整个子类.这样就限制了子类的原创 2012-06-28 12:06:59 · 5227 阅读 · 4 评论 -
C调用C++链接库
C调用C++链接库: 1.编写C++代码,编写函数的时候,需要加入对C的接口,也就是extern “c" 2.由于C不能直接用"class.function”的形式调用函数,所以C++中需要为C写一个接口函数。例如本来要调用student类的talk函数,就另外写一个cfun(),专门建一个student类,并调用talk函数。而cfun()要有extern声明 3.转载 2012-07-13 16:04:37 · 8124 阅读 · 0 评论 -
数据结构:胜者树与败者树
已移到: http://www.iteblog.com/archives/93假设有k个称为顺串的有序序列,我们希望将他们归并到一个单独的有序序列中。每一个顺串包含一些记录,并且这些记录按照键值的大小,以非递减的顺序排列。令n为k个顺串中的所有记录的总数。并归的任务可以通过反复输出k个顺串中键值最小的记录来完成。键值最小的记录的选择有k种可能,它可能是任意有一个顺串中的第1个记录。并归k个顺串的最原创 2012-10-15 22:15:36 · 27463 阅读 · 14 评论