#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<stack>
#define ElementType int
#define MAXSIZE 11
#define ERROR -1
#define NotFound 0
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
//以先序顺序输出叶子结点
void PreorderPrintLeaves(BinTree BT){
if(!BT)
return;
if(!BT->Right&&!BT->Left)
printf(" %c",BT->Data);
PreorderPrintLeaves(BT->Left);
PreorderPrintLeaves(BT->Right);
}
//递归创建二叉树
BinTree create(char*_array,int &cur){
if(_array[cur]=='#')
return NULL;
BinTree node = (BinTree)malloc(sizeof(struct TNode ));
node->Data = _array[cur];
node->Left = create(_array,++cur);
node->Right = create(_array,++cur);
return node;
}
int main(){
char _array[] = {'a','b','d','#','#','#','c','#','#'};
int cur = 0;
BinTree t = create(_array,cur);
PreorderPrintLeaves(t);
return 0;
}