二叉树叶叶节点个数求思路.
#include <stdio.h>#include <stdlib.h>
typedef char DataType;
#include "BiTree.h"
#include "BiTreeTraverse.h"
void Visit(DataType item)
{
printf("%c",item);
}
void PrintBiTree(BiTreeNode *root,int n)
{
int i;
if (root==NULL) return;
PrintBiTree(root->rightChild,n+1);
//
for(i=0;i<n-i;i++)
printf(" ");
if (n>0)
{
printf("---");
printf("%c\n",root->data);
}
PrintBiTree(root->leftChild,n+1);
}
BiTreeNode *Search(BiTreeNode *root,DataType x)
{
BiTreeNode *find=NULL;
if(root!=NULL)
{
if(root->data==x)
find=root;
else
{
find=Search(root->leftChild,x);
if (find==NULL)
find=Search(root->rightChild,x);
}
}
return find;
}
void main (void)
{
BiTreeNode *root,*p;
Initiate(&root);
p=InsertLeftNode(root,'A');
p=InsertLeftNode(root,'B');
p=InsertLeftNode(root,'D');
p=InsertRightNode(root,'G');
p=InsertLeftNode(root->leftChild,'C');
InsertLeftNode(p,'E');
InsertRightNode(p,'F');
}
给这段代码加一个求二叉树叶节点个数的函数.求思路.