相信坚持的力量……

基础扎实、课外知识、技术博客

顺序表操作

顺序表的建立、插入等;

2014-07-11 10:04:04

阅读数 606

评论数 0

二叉树的几个基本性质

性质1: 在二叉树的第 i 层上最多只有 2^(i-1) 个结点; 性质2:深度为 k 的二叉树至多有 2^k  - 1 个结点 ; 性质3:对于任何一课二叉树,结点总数为 n 个 ,如果其叶子结点数为 n(0) 个 ,度为1的结点有 n(1) 个,度为2的结点有 n(2) 个 ,则: n ...

2014-03-14 09:51:21

阅读数 960

评论数 0

二叉树先序、中序、后续遍历(非递归实现)

二叉树遍历的非递归形式,主要是依靠 栈 来实现的: 对于二叉树的先序遍历,先将根结点压入栈中,然后将树中所有的左子树压入栈中同时访问其值,对于最后一个左子树压入栈中后,它的左子树为NULL ;访问它的右子树,并从栈中将其退出,再以它的右子树为根结点的形式进行访问,当栈中元素第一次全部清空之后,若根...

2014-03-12 17:50:36

阅读数 1058

评论数 0

二叉树前序、中序、后续遍历(递归实现)

依照上一篇博文所建立的二叉树,对其进行前序、中序、后续遍历: #include #include #include #include using namespace std ; //(11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (...

2014-03-12 15:31:01

阅读数 1020

评论数 0

二叉树的宽度优先遍历(队列实现)

给出每个子结点到根结点的路径,可以进行输入建树; 然后用宽度优先搜索的方法遍历这棵二叉树; 宽度优先搜索需要用到队列,队列中头部出来一个,尾部需要进去两个,直到叶子结点为止! #include #include #include #include using namespace std ; st...

2014-03-12 15:17:36

阅读数 1887

评论数 0

模拟二叉树 — 纪念植树节……

给定一颗完全二叉树;可知道这棵树有以下特点: 1、若父亲结点为k,则其左孩子结点为2*k,右孩子结点为2*k+1 2、若深度为D,结点最多为(1 有一些小球从结点1处依次开始下落,问最后一个小球将会落到哪里? 如果遇到这样的问题,肯定不能用深度遍历,原因是,每个小球都要从上往下依次下落。 ...

2014-03-12 11:01:53

阅读数 777

评论数 0

动态规划——M个子串最大和

输入一个整数n ,表示有n个数据,输入n个数据,求出m个子串最大和; dp[i][j]  表示与第j个数组合时,第i段子串最大和 ; 注意:dp[i][j] 不是前 j 个数 ,形成 i 段的最大和 ; 不经过优化的代码: #include using namespace std ; ...

2014-03-11 21:12:45

阅读数 981

评论数 0

动态规划——求最大子串和

输入一个整数n代表有几个数据,接着输入n个数据,求这n个数据组成的串中,子串和最大; 一道求最优解的动态规划问题。 dp[ i ] 表示与第i个数组合时,所能得到的最大值 ; 第n个数据(dp[ n ])有两种年可能:1、当 dp[n-1]    2、当 dp[n-1] >= 0 ...

2014-03-11 11:06:03

阅读数 1641

评论数 0

字符串问题汇总

计算一个字符串在另外一个字符串中出现的次数: #include #include #include using namespace std ; int main() { int count = 0 ; string s1 = "abcdef" , s2 = "ab...

2014-03-10 18:13:07

阅读数 545

评论数 0

C/C++输入,输出汇总

C语言输入输出详解 C语言中基本的输入输出: putchar() ;    //  把变量中的一个字符常量输出 #include int main () { char c; for (c = 'A' ; c <= 'Z' ; c++) putchar (c); re...

2014-03-10 16:46:02

阅读数 692

评论数 0

HDU(1003)动态规划

这道题虽然有很多种解法,但我一直尝试着用动态规划解,刚入门,用起来很不顺手,其中出现了很多错误,很多的意想不到,希望通过这道题,对动态规划能够更进一步的了解。 这道题是典型的也是动态规划中最简单的一道题,求最大子串和的问题。 第一步:分解出子问题。 本题的子问题是:dp[i] 代表前i个数中...

2014-03-06 10:13:21

阅读数 1007

评论数 0

我所喜欢的话(不断更新)

1、究竟是我们改变了世界,还是世界改变了?多年后,其实我们才发现是:我们改变不了世界,是世界改变了我们。 2、古之成大事者,不惟有超世之才,亦必有坚韧不拔之志。 3、故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。

2014-03-05 23:23:46

阅读数 611

评论数 0

HDU(2059)动态规划问题

对于动态规划问题,可以按步骤来做: 1、分解出子问题。 2、求得子问题的最优解。 首先将问题转化为:到达一个站点 i 的最优解 。 对于每一个站点 i ,我们可以假设在第 j ( 0 (1) 当从第j个站点到第i个的距离大于电动车能够行使的距离时,需要开与骑相结合。 (2) ...

2014-03-05 21:23:43

阅读数 799

评论数 0

动态规划

动态规划和贪心算法相似,都是用来求解最优解的,但是区别也很大,适合动态规划求解的问题,也满足最优子结构性质,却不一定满足贪心的选择的性质,贪心算法是局部最优解,其实在动态规划中,贪心算法被替换成无后效性。 动态规划的基本思想 动态规划的基本思想源自递归,是一种问题转化策略,基于递归的问题转化策略有...

2014-03-05 16:50:00

阅读数 711

评论数 0

HDU(2058)条件限制

刚开始用的是枚举,结果不出意外的超时了,分析了一下,这题主要考察等差数列的运用,看来数学学得扎实,程序才能简洁,才能高效,重视先数学思维,再程序实现,数学好,才是真的好。 等差数列求和公式: Sn=(a1+aN)*n/2     =(a1+a1+d(n-1))*n/2     =a1*n+...

2014-03-05 11:20:38

阅读数 574

评论数 0

hdu(2054)

一个字符串处理问题,需要注意的是小数点问题,如果小数点后面有0,则需要将小数点后面的0,去掉,才能相互比较。 strstr( s , "." )  即可查到字符串s中是否有小数点,如果查到,返回小数点在字符串中的位置,如果不存在,则返回NULL #include #inc...

2014-03-05 10:13:50

阅读数 532

评论数 0

HDU(2057)十六进制数相加

本来想把十六进制的数先转化为十进制的数相加,然后再转化为十六进制的数输出,网上一搜,原来C语言如此强大,可以直接用十六进制输入,十六进制的数输出。非常气氛学校开学没学C语言,来的就开始学C++;导致C语言中的很多地方都不会用。 输入八进制 %o 输入十进制 %d 输入十六进制 %x 输出也是一样...

2014-03-04 21:04:40

阅读数 777

评论数 0

HDU(2056)程序中的条件限制

一道很简单的数学题,但还是花了不少时间才给过掉!很遗憾,数学功底太差,希望以后遇到类似题,不会再这么模糊了。 解决本题的步骤: 1、注意给的对角线不一定是主对角线,但是记住对角线上的点都是单调的,所以很容易就可以给调过来,调成新的四个点坐标。 2、还需要判断形成的两个矩形是否有相交的部分,如...

2014-03-04 20:20:44

阅读数 857

评论数 0

平面分割问题汇总

先看n条直线相交最多可把平面分割为几个部分: 设n-1条直线可把平面分割为f(n-1)个部分,则第n条直线需与平面中每一条直线相交才能使得把平面分割的个数达到最多,所以平面中有多增加了n-1个交点,平面又多了n块,f(n) = f(n-1) + n ; 若每次添加两条平行直线,...

2014-03-04 10:54:09

阅读数 655

评论数 0

hdu(2048)全错位排列

N张票的全排列为N! 种方式,而第N张票的错排有几种: 1、当前面N-1个人都拿的不是自己的票,而第N个人拿的是自己的票,只需要把自己的票与前面n-1个人中任何一个人交换,就可以形成前N 张票的错排; 2、当前面N-1个人中有一个人拿的是自己的票,而第N个人拿到不是自己的票,只需要把自己的票和...

2014-03-04 09:06:13

阅读数 653

评论数 0

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