1.非递归先序遍历要点:总是先访问根root,而将root的右结点压入栈中,当root没有左结点时,取出栈顶元素给root。void preorder(node* root){ if(root==NULL) return; stack s; while(true){ ...
分类:
其他好文 时间:
2014-08-16 12:19:30
阅读次数:
171
二叉树的二叉树节点的描述publicclassBiTNode{chardata;BiTNodelc,rc;}下面我们分别用递归和非递归实现前、中、后序遍历,以及使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,分别使用了front和rear两个数组的下标来..
分类:
其他好文 时间:
2014-08-16 01:11:30
阅读次数:
203
使用ligerui + servlet快速搭建ligerui开发环境。来吧,让我们来看看吧......
分类:
编程语言 时间:
2014-08-15 22:36:49
阅读次数:
282
快速排序法基本思想:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
程序代码:
#include
...
分类:
其他好文 时间:
2014-08-15 18:01:09
阅读次数:
252
不得不说这道题十分猥琐啊,递归求解,我RE了接近20次,最后发现还是数组开小了。
#include
#include
#include
#include
#include
using namespace std;
int biao[250000],n,r,zhi = 0;
double p[250000],possi[250000];
int v[250000][25];
void dfs(in...
分类:
其他好文 时间:
2014-08-15 18:00:59
阅读次数:
227
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-08-15 14:30:39
阅读次数:
116
题目描述请参考:ZOJ ACM 2060
1)难度分析
由于N较大,为1000000,如果用递归中规中矩的计算结果后再判断是否被3整除肯定超时且费内存。
2)解决方法
f(0) %3 = 1; f(1) %3 = 2; f(2) % 3 = 0;...
通过简单观察,可以发现这是有规律的,因为3比较小,所以并不需要太久即可完成一个循环。从而根据N直接判断是否可被3整除。
结果如下:
...
分类:
编程语言 时间:
2014-08-15 12:50:28
阅读次数:
233
1.简单递归最简单的求幂算法是根据xn=x*xn-1,使用递归:def foo(x,n): if n==0: return 1 else: return x*foo(x,n-1)这样求x的n次方,会进行n-1次乘法运算,n较大时效率很低。2.高效递归一种更高效...
分类:
其他好文 时间:
2014-08-15 04:01:26
阅读次数:
268
【问题】
想兑换100元钱,有1,2,5,10四种钱,问总共有多少兑换方法。
const int N = 100;
int dimes[] = {1, 2, 5, 10};
int arr[N+1] = {1};
int coinExchange(int n) //动态规划
{
int i, j;
for (i = 0; i < sizeof(dimes)/sizeof(int); ...
分类:
其他好文 时间:
2014-08-15 01:33:37
阅读次数:
279
快速排序中的算法思想
1. 分治思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
我们可以利用分治思想将杂乱无序的数组Arr[p,,r]分为以下几个步骤
分类:
其他好文 时间:
2014-08-15 01:26:06
阅读次数:
222