在本篇博文中,笔者使用二叉链表作为二叉树的存储结构,利用递归的思想,实现了统计二叉树中元素为x的结点数目的算法。
代码如下:
typedef char TElemType;
typedef struct BiTNode //定义二叉链表
{ TElemType data;
struct BiTNode *lchild , *rchild;
} BiTNode, *BiTree;
void tongji (BiTree T, int &k) //统计函数
{
if(T)
{
char x;
scanf("%c",&x); //输入对比字符x
if(T->data==x)
{
k++;
}
}
tongji(T->lchild,k); //递归
tongji(T->rchild,k);
}
此处请读者注意:函数中的形参k,前面带有&的符号,代表形参k同时作为函数的返回值进行运算。