自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 给出前序序列,求后序序列

有一棵树,每个结点存放一个字符。所有的叶子结点都存放着‘#’字符,非叶子结点则不可能存放‘#’字符。非叶子结点都是既有左子树又有右子树。给出该树的先序遍历序列,求其后序遍历序列输入:AB#D##CE###输出: ###DB##E#CA#include using namespace std;//先序遍历得到后序遍历(递归实现)//思想:没输入一个字符判断是否是#,如是则直接

2013-08-30 17:09:13 1240

原创 二叉树的先序、中序、后序遍历(删除树有问题)

#include using namespace std;//定义一个树节点struct CharNode{ char data; CharNode *pLeft; CharNode *pRight;};//创建一个树节点CharNode *CreateNode(char ndata){ CharNode *pNode = n

2013-08-30 16:37:09 617

原创 关于单链表的几种操作实现

#include using namespace std;//定义一个链表结点struct LNode{ int data; LNode *next;};//定义一个链表结构struct LinkList{ LNode *pHead;//表头指针 LNode *pCurrent;//当前结点指针 int nLengt

2013-08-29 19:56:21 629

原创 关于C++——理解C++默默编写并调用了哪些函数&&函数初始化式(初始化列表相关)

如:class Empty{};实际上等于写了:class Empty{          Empty()  { ... };//默认构造函数         Empty( const Empty &rhs)  { ... };//复制构造函数         ~Empty()  { ... };//析构函数, 编译器产出的析构函数是非可见的

2013-08-28 22:54:07 482

转载 POJ1661Help Jimmy(动态规划)

Description"Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落

2013-08-28 18:29:38 644

转载 malloc与free和new/delete的区别

不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加ma

2013-08-28 15:33:16 403

原创 导致下面的while循环终止的原因是什么?

while(cin >> i)/*...*/导致循环终止的原因是流对象进入错误状态,具体包括在读入数据时出现下列情况:1.系统级故障2.读入了无效数据3.遇到文件结束符

2013-08-28 14:35:57 1945

原创 循环条件中使用逗号

while(cin >> ival, !cin.eof() ){ ...}逗号操作符的求解过程:首先计算它的每一个操作数,然后返回最右边操作数作为整个操作的结果。因此,循环条件只读入cin而忽略了其结果,该条件的结果是!cin.eof()。如果cin到达文件结束符,退出循环。如果cin没有到达文件结束符,则 不管在读取时是否发生了其他可能遇到的错误,都将进入循环。

2013-08-28 11:13:43 1554

原创 POJ1661——Help Jimmy(关于动态规划)

总结:1.用动态规划解题,关键是要找出"状态"和状态间进行转移的方法(即状态转移过程)2.一般在动态规划的时候所用到的一些数组,也就是用来存储每个状态的最优值。搜索的实现:方式1:递归——剪枝1.整个搜索过程中,最终状态始终不变2.不要考虑明显不能达到最终状态的路径方式2:动态规划目的:1.在搜索过程中,把计算的结果保留下来2.在后面的搜索过程中,努力使用前

2013-08-27 16:31:57 571

原创 求最长的上升子序列

题目:一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N

2013-08-26 22:17:39 611

原创 动态规划——POJ1163数字三角形问题

#include using namespace std;const int MaxNum = 100;int Num[MaxNum + 10][MaxNum + 10];int MaxSum[MaxNum + 10][MaxNum + 10];int N;int main(){ int i; int j; cin >> N; f

2013-08-26 09:20:38 557

原创 八皇后问题

#include #include #include using namespace std;int const QueenNum = 8;int Queen[QueenNum];//记录当前正在尝试的摆法int nResult[92][QueenNum];//存放找到的摆法int nFoundNum = 0;//记录当前已经找到的摆法数//摆放第n行及以后的皇后(

2013-08-21 22:00:08 542

原创 循环数的确定

#include #include #define MAX 60using namespace std;//两个数相加int Add(int nMaxLen, int *a1, int *a2){ int nHighestPos = 0; for(int i = 0; i <= nMaxLen - 1; ++i) { a1[i

2013-08-20 15:26:08 612

原创 0 - 9的100——1000次方

#include #define MAX 1000using namespace std;//小整数的整数次方/*int PowerWithUnsignedExponent(int base, int exponent){ if(exponent == 0) return 1; if(exponent == 1) return bas

2013-08-20 11:23:35 803

原创 大整数除法

基本思想:反复做减法,看看从被除数里最多能减去多少个除 数,商就是多少。一个一个减显然太慢,如何减得更快一些呢?以 7546除以23为例来看一下:开始商为0。先减去23的100倍,就是2300,发现够减3次,余下646。于是商的值就增加300。然后用646减去230,发现够减2 次,余下186,于是商的值增加20。最后用186减去23,够减8次,因此最终商就是328。所以本题的核心是

2013-08-19 19:41:01 952

原创 大整数乘法

一、高精度计算需要注意的几个问题:1.用字符串的读入方式,再按字符分别转换成数字2.不能用数值型的读入方式二、计算过程中考虑进位和借位问题(先不急于处理,在计算结束时处理)1.数组第i元素>=10(或2.从上位增或减1,本位减或加10三、输出时注意跳过高位多余的0四、数组需要稍微大一些,避免运算时溢出问题描述求两个不超过200位的非负整数的积。输入数据

2013-08-18 16:23:05 590

原创 大整数减法

#include #include using namespace std;const int MAXLEN = 200;//大整数减法int Substract(int MaxLen, int *a1, int *a2){ int nHighestPos = 0; for(int i = 0; i < MaxLen; ++i) {

2013-08-18 11:10:50 637

原创 大整数加法

问题描述:求两个不超过200位的非负整数的和。输入数据有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。输入样例2222222222222222222233333333333333333333输出样例55555555555555555555

2013-08-17 14:03:14 570

原创 字符串移位问题

#include #include #include #include using namespace std;int main(){ //======第一种方法====== //穷举s1循环移位所能得到的所有字符串,看其结果是否含有s2.但是若字符串长度N较大,显然时间效率很低 //时间复杂度为O(N的平方) //char s1[]

2013-08-14 19:46:46 687

原创 关于输出前面补零的总结

#include #include using namespace std;int main(){    for(int i = 1; i     {        printf("%03d",i);//必须是%03d,而不是%3d,这样输出时每个i有3个整数位,不足三位的                                //0填充在前面。其实输出时右

2013-08-14 15:23:07 1248

原创 POJ1331确定进制

#include #include #include using namespace std;//将输入的b进制数转换为十进制数表示int b2ten(int p, int b){ //利用字符串来存储各个位 char temp[100]; int ret = 0; sprintf(temp, "%d", p); //tem

2013-08-14 15:06:45 1240

原创 POJ2080日历问题

基本思路:1.确定星期几(先需确定2000.1.1是星期几)2.确定年:闰年366天,否则365天3.确定月:每个月长短不同4.确定日#include using namespace std;//判断是闰年还是平年int type(int m){ if(m % 4 != 0 ||(m % 100 == 0 && m % 400 != 0))

2013-08-14 14:53:22 662

原创 POJ1006生理周期

问题分析:令所求的时间为X天,则具有如下性质:1)D 2)  (X - p) % 23 = 03)  (X - e) % 28 = 04)  (X - i) % 33 = 0算法思想:从d + 1开始逐一枚举寻找满足条件2的数字a,从a开始每步加23寻找满足条件3的数字b(这样的b自然也满足条件2),然后再从b开始每步加23 * 28寻找满足条件4的数字X(这样的X同时满足条件

2013-08-13 18:54:42 544

原创 POJ3069标记点

#include #include using namespace std;int N;int R;void Solve(){/* N = 6; R = 10; int X[6] = {1, 7, 15, 20, 30, 50};*/ cin >> N; cin >> R; int X[N]; f

2013-08-12 20:47:52 574

原创 字典序最小问题Best Cow Line

#include #include using namespace std;int main(){ int N = 6; //cin >> N; //char s[] = "ACDBCB"; //char s[6] = {'A', 'C', 'D', 'B', 'C', 'B'}; //string s = "ACDBCB";

2013-08-12 15:51:17 554

原创 POJ1017 __Packets——放木块的箱子数

/*已知:有6*6的大箱子和1*1,2*2,3*3,4*4,5*5,6*6的木块,箱子高度和木块高度一样问:给定各种木块的数目,求最少需要多少个大箱子来装*///阶梯思想:先放大的,再放小的#include using namespace std;int main(){ int b6, b5, b4, b3, b2, b1; int c1;//当

2013-08-12 10:58:32 872

转载 C中的qsort函数

C中的qsort函数一、简介 原 型: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));功 能: 使用快速排序例程进行排序 参 数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序说明:

2013-08-11 17:01:26 552

转载 七种qsort排序方法

一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序(同int类型) ch

2013-08-11 16:53:17 530

原创 递归——放苹果

问题:m个苹果,n个盘子,问多少种不同方法?盘子和苹果是没有编号的,即1,2,3和3,2,1算是一种放法算法:1.当n > m:必定有n - m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响即if(n > m)  f(m,m) = f(m,m)            当n              a.有至少一个盘子空着,即相当于f(m,n) = f(m, n - 1)

2013-08-11 15:10:29 718

原创 电梯的调度算法

对于O(n)的算法,假设电梯停在第i层楼,显然可以计算出所有乘客总共要爬楼梯的层数Y,如果有N1个乘客目的在第i层楼一下,有N2个乘客在第i层楼,还有N3个乘客在第i层楼以上。此时,如果电梯停在i - 1层(从第一层开始考察),所有目的地在第i层及以上的乘客都要多爬一层,总共需要多爬N2 + N3层,而所有目的地在第i - 1层及一下的乘客可以少爬一层总共可以少爬N1层。因此总共需要爬的层数为Y-

2013-08-10 18:31:26 1466

原创 区间调度问题

有n项工作,每项工作分别在start[i]时间开始,在End(i)时间结束。对于每项工作,你都可以选择参与与否,如果选择参与,那么自始至终必须全程参与。此外参与时间段不能重叠(即使是开始的瞬间与结束的瞬间重叠也是不允许的),那么最多能参与多少项工作?//算法思想:在可选的工作中,每次都选取结束时间最早的工作#include #include #include using nam

2013-08-10 11:06:44 1187

原创 贪心算法——硬币问题

有1元,5元,10元,50元,100元,500元的硬币各C1,C5,C10,C50,C100,C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?#include using namespace std;int V[6] = {1, 5, 10, 50, 100, 500};//硬币面值int C[6] = {3, 2, 1, 3, 0, 2};//硬币对应的个数int

2013-08-10 10:24:30 2504

原创 对一个结构体或类的数组进行排序

根据人的属性对人进行排序,之后输出结果。将每个人看成一个对象,这个对象有ACM、金钱、人品三个属性,排序优先顺序是ACM、金钱、人品。因此ACM成绩相同时比较金钱,如果金钱再相同时比较人品值。首先我们先定义一个men对象:struct men{ int ACM; int Money; int RP;}men对象一共有三个成员。比

2013-08-09 22:13:25 1423

原创 关于sort算法的总结

sort(数组头指针,数组为指针,比较函数)//需要包含algorithm头文件sort函数的强大功能在于可以给多种数据类型排序。sort可以排列整型数组、字符型数组、浮点型数组,也可以对字符串数组和结构体数组进行排序。#include #include #include using namespace std;//定义一个比较函数//如果排序函数返回a b//那

2013-08-09 21:53:22 536

转载 sort的使用经验

1.list 里有个方法sort方法。注意Vector很多方法和list一样,但是,这个方法Vector是没有的。 (1).整型数据排序 void ListSortTest(){ list num; num.push_back( 1 ); num.push_back( 3 ); num.push_back( 2 );

2013-08-09 21:22:38 758

转载 STL中泛型算法find_if()与sort()的应用举例及详解

STL中泛型算法find_if()与sort()的应用举例及详解 请认真看下原型://find_if()的原型: template InputIterator find_if ( InputIterator first, InputIterator last, Predicate pred ); //sort()的原型: template

2013-08-09 21:20:29 654

转载 sort算法

1 所有sort算法介绍 所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是随机迭代器(RadomAccessIterator), 也就是说可以随机访问的迭代器,如:it+n什么的。(partition 和stable_partition 除外) 如果你需要自己定义比较函数,你可以把你定义好的仿函数(functor)作为

2013-08-09 21:06:53 1015

原创 STL的排列算法next_permutation

#include #include #include using namespace std;//定义一个测试数组void TestArray(){ cout << "TestArray is :" << endl; int b[] = {3, 2, 1}; int count = sizeof(b) / sizeof(int); //因为n

2013-08-09 21:01:44 474

原创 宽度优先搜索——迷宫的最短路径

#include #include #include using namespace std;const int INF = 10000000;typedef pair Point;int sx;//起点坐标int sy;int gx;//终点坐标int gy;//到各个位置的最短距离的数组int d[100][100];//4个方向移动的向量,对应

2013-08-09 16:59:45 1176

原创 Hanoi塔问题

分治算法与软件设计的模块化方法类似。为了解决一个大的问题,将一个规模为n的问题分解为规模较小的子问题,这些子问题相互独立并且和原问题相同。分解这些子问题,最后将各个子问题的解合并到原问题的解。子问题与原问题类似,可以递归的使用分治策略解决。Hanio(n, x, y, z)问题分成三个子问题:问题1:Hanio(n - 1, x, z, y)将x柱上的n - 1个圆盘借助Z柱移到Y柱上

2013-08-09 10:42:35 569

Java并发编程笔记

绝对的好东西,亲测,认真读读绝对大有裨益,欢迎下载!

2018-02-24

深入理解计算机系统

绝对的经典,从程序员的角度了解操作系统。

2014-10-01

swt开发文档

叫经典的介绍swt的用户API,便于开发。

2014-03-14

程序员的数学

程序员学习编程的入门好书,虽然很浅显,但是绝对是好书

2013-10-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除