源程序:
#include <iostream>
#include <stack>
using namespace std;
typedef struct bitreenode
{
char data;
struct bitreenode *lchild, *rchild;
}*Bitree;
//创建二叉树
void createbitree(Bitree &T)
{
char data;
data = getchar();
if (data == '#')
{
T = NULL;
}
else
{
T = new bitreenode;
T->data = data;
createbitree(T->lchild);
createbitree(T->rchild);
}
};
//按先序次序打印叶子结点
void pre_leaf(Bitree T)//T 为根结点指针
{
if (T!= NULL)
{
if (T->lchild == NULL && T->rchild == NULL)
printf("%c", T->data);
pre_leaf(T->lchild);
pre_leaf(T->rchild);
}
}
///////////////主函数///////////////
void main()
{
Bitree t = NULL;
printf("请按以下两种序列输入二叉树的结点: ");
printf("AB#D##CE### 或 ABD##E##C#F## ");
createbitree(t);
printf("先序次序打印的叶子结点为:");
pre_leaf(t);//按先序次序打印叶子结点
system("pause");
}
运行结果: