算法填空:递归式的先序遍历输出一棵给定二叉树的所有叶子结点的算法。 typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; /* 左右孩子指针 */ }BiTNode; void DispLeaf(BiTNode *b) { if (b!=NULL) { if ( ① ) printf("%c ",b->data); /* 访问叶子结点 */ ② ; ③ ; } }
时间: 2024-02-14 10:21:01 浏览: 78
二叉树的递归算法:建立二叉树、遍历二叉树
4星 · 用户满意度95%
算法如下:
```
void DispLeaf(BiTNode *b)
{
if (b != NULL)
{
if (b->lchild == NULL && b->rchild == NULL) // 判断是否为叶子结点
printf("%c ", b->data); // 访问叶子结点
DispLeaf(b->lchild); // 递归遍历左子树
DispLeaf(b->rchild); // 递归遍历右子树
}
}
```
解析:
1. 在递归遍历二叉树的过程中,判断当前节点是否为叶子结点,如果是,则输出该节点的数据。
2. 递归遍历当前节点的左子树。
3. 递归遍历当前节点的右子树。
阅读全文