源程序:
#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("請按以下兩種序列輸入二叉樹的結點:\n");
printf("AB#D##CE### 或 ABD##E##C#F##\n");
createbitree(t);
printf("先序次序打印的葉子結點為:");
pre_leaf(t);//按先序次序打印葉子結點
system("pause");
}
運行結果: