像是 汉诺塔 ,斐波纳妾数列。
将复杂问题整体对待。
像剥玉米一样,一层一层剥开。
可读性差,但是容易写。(只要拿问题的一个特例就能写成对所有可能的应用)
在一个函数中添加必要语句,进行分情况处理。
附:二叉树遍历策略的应用
///
void Exchange(BiTree T)//传入的是二叉树的结点,交换左右子树
{
BiTree p;
if (T)
{
p=T->lchild;
T->lchild=T->rchild;
T->rchild=p;
Exchange(T->rchild);
Exchange(T->lchild);
}
}
int CountLeaf(BiTree T)//统计子叶的数目
{
int m,n;
if (!T)//不存在的情况
{
return 0;
}
else if (NULL==T->lchild&&NULL==T->rchild)//是子叶的情况
{
return 1;
}
else
{
m=CountLeaf(T->lchild);
n=CountLeaf(T->rchild);
return (m+n);
}
}
int deep_BiTree(BiTree T)//计算树的深度
{
if (!T)
{
return 0;
}
else
{
int n,m;
n=deep_BiTree(T->lchild);
m=deep_BiTree(T->rchild);
if (n>=m)
{
return (n+1);
}
else
{
return(m+1);
}
}
}
/