/**?二叉树节点?*/
public?class?BTNode?{
private?char?key;
private?BTNode?left,?right;
public?BTNode(char?key)?{
this(key,?null,?null);
}
public?BTNode(ch...
分类:
编程语言 时间:
2015-07-21 22:25:38
阅读次数:
237
递归完成树的遍历很好理解,倘若是非递归,不要告诉我算法导论上有,我要maker的思考过程
既然递归能够实现,那就模拟递归。递归的本质就是压栈。
首先简单树,观察递归的压栈过程
A、B即使节点的数据也代表节点的地址。
对这棵树使用递归完成前序创建#include
using namespace std;
struct treenode;
typedef struct...
分类:
编程语言 时间:
2015-07-17 16:24:55
阅读次数:
172
package c4;public class FibTest { public static void main(String []args ){ long begin = System.currentTimeMillis() ; System.out.println(fib(10)) ; ...
分类:
编程语言 时间:
2015-07-16 16:20:34
阅读次数:
123
介绍了MPTT、领接表两种常见树状结构及在关系数据库中相互转换的非递归算法。...
分类:
数据库 时间:
2015-06-30 18:28:51
阅读次数:
171
对于二叉树,有前序、中序、后序三种遍历方法,由于树的定义本身就是递归定义的,故采用递归方法实现三种遍历简洁易懂。若采用非递归访问,则需要使用栈来模拟递归的实现。三种遍历的非递归算法中,前序和后序较容易,而后序相对较难。前序遍历递归非递归树的遍历中序遍历递归非递归后序遍历递归非递归层次遍历计算树高.....
分类:
其他好文 时间:
2015-06-18 19:01:43
阅读次数:
117
原文:http://blog.csdn.net/left_la/article/details/8206405快速排序的三个步骤:1、分解:将数组A[l...r]划分成两个(可能空)子数组A[l...p-1]和A[p+1...r],使得A[l...p-1]中的每个元素都小于等于A(p),而且,小于等...
分类:
编程语言 时间:
2015-06-13 12:46:21
阅读次数:
133
上篇咱们说到二叉树的一种建立方法及三种遍历方法的递归非递归算法。这篇换了一种新的建立方法,用先根遍历递归的思路建立二叉树,用递归的方法计算深度,用中根递归和非递归方法遍历整个二叉树。
BinaryTree.h
//二叉树的建立和遍历
#ifndef BINARYTREE_H_
#define BINARYTREE_H_
#include
typedef int T;
struct Node
...
分类:
其他好文 时间:
2015-06-10 09:04:51
阅读次数:
160
【递归经典题目】汉诺塔算法 Java实现汉诺塔非递归算法
分类:
编程语言 时间:
2015-06-08 11:30:14
阅读次数:
97
如何用递归实现数组求和
给定一个含有n个元素的整形数组a,求a中所有元素的和.
非递归算法:
int sumr(int *a,int n)
{
int sum=0;
for(int i=0;i<n;i++)
sum+=a[i];
return sum;
}
递归算法:
int sum(int *a,int n)
{
return n==0?0:sum(a,n-1)+...
分类:
编程语言 时间:
2015-05-14 10:04:07
阅读次数:
164
//一只母牛,第二年底生一只母牛和一只公牛,第三年底生一只母牛 ,第五年开始母牛会死。公牛也只能活四年。请问一个农场开始只有一只刚出生的母牛,N年后一共有多少只牛。
//请写一个函数输出结果,用递归和非递归两种方法来实现.
function cowrecursion($i)
{
if ($i == 1) //如果是第一年,则1头牛。
{
return 1;
}
elseif (...
分类:
编程语言 时间:
2015-04-24 01:07:15
阅读次数:
179