竟然当了版主,做做义务...
非递归的话,跟层序遍历二叉树差不多,引入个队列就行了.
简单代码如下:
boolean judge(Tree &T)
{
Tree p=null;
bool flag=true;
Queue q;
EnQueue(q,T);
while(!isEmpty(q)||p!=null)//当队列非空或者p非空
{
p=DeQueue(q);//出队
if(p)
{
if(p->lchild)
{
if(p->lchild->data<p->data)
EnQueue(q,p->lchild);//入队,表示继续向下执行
else
{
flag=false;
break;
}
}
if(p->rchild)
{
if(p->rchild->data>p->data)
EnQueue(q,p->rchild);
else
{
flag=false;
break;
}
}
}
}
return flag;
}
[此贴子已经被作者于2007-1-2 21:38:40编辑过]