- 论坛徽章:
- 0
|
题目没错,答案也没错
非常明显的RNL(或者叫RDL)递归遍历二叉树。(还是仔细看看数据结构中树的遍历吧)
typedef struct BiTNode {
TElemType data;//节点数据
struct BiTNode *lchild, *rchild;//左右孩子指针
}BiTNode, *BiTree;
Status RDLTraverse(BiTree T, Status(* Visit)(TElemType e)){
//采用二叉链表存储结构,Visit是对数据元素操作的应用函数,
//RDL遍历二叉树T的递归算法,对每个数据元素调用函数Visit。
//最简单的Visit函数是:
// Status PrintElement(TElemType e){ //输出元素e的值
// printf(e);
// return OK;
// }
//调用实例:RDLTraverse(T, PrintElement);
if(T) {
if(Visit(T->rchild,Visit))
if(RDLTraverse(T->data,Visit))
if(RDLTraverse(T->lchild,Visit)) return OK;
return ERROR;
}else return OK;
} |
以上是RNL遍历二叉树的递归算法。 |
|