关于return ERROR和return OK 作用的有关问题
关于return ERROR和return OK 作用的问题
例如下边的函数:
int PreOrderTraverse(BiTree T,int (*visit)(int e))
{
if(T)
{
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit))
return OK;
return ERROR;
}
else
return OK;
}
这里边的return语句都是什么作用?我记得return ERROR可以终止程序,他是终止整个递归,还是只终止其中的某一次递归调用?还是都不是啊?麻烦知道的指教一下这里边return OK 和 return ERROR的作用
------解决方案--------------------
例如下边的函数:
int PreOrderTraverse(BiTree T,int (*visit)(int e))
{
if(T)
{
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit))
return OK;
return ERROR;
}
else
return OK;
}
这里边的return语句都是什么作用?我记得return ERROR可以终止程序,他是终止整个递归,还是只终止其中的某一次递归调用?还是都不是啊?麻烦知道的指教一下这里边return OK 和 return ERROR的作用
------解决方案--------------------
- C/C++ code
int PreOrderTraverse(BiTree T,int (*visit)(int e)) { if(T) { if(Visit(T->data)) if(PreOrderTraverse(T->lchild,Visit)) if(PreOrderTraverse(T->rchild,Visit)) return OK; return ERROR; } else return OK; }