以二叉链表作存储结构,建立一棵二叉树, 输出该二叉树的先序遍历序列。
二叉链表的类型描述:
typedef char ElemType;
typedef struct BiNode
{ ElemType data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
输入格式:
输入一个二叉树的先序序列,孩子为空的位置以#
替代。
输出格式:
输出该二叉树的先序遍历序列。输出的遍历序列中字符间均无间隔。
具体格式参看输出样例。
对于下图中给出的二叉树:
输入样例:
ABD##FE###CG#H##I##
输出样例:
ABDFECGHI
代码实现
#define OK 1
#define ERROR 0
#include<iostream>
using namespace std;
#define MAX 100
typedef struct BiNode
{ char data;
struct BiNode *l,*r;
}BiNode,*B;
int creat(B &t){
char ch;
cin>>ch;
if(ch=='#') t=NULL;
else{
t=new BiNode;
t->data=ch;
creat(t->l);
creat(t->r);
}
}
int trave(B &t){
if(t==NULL) return OK;
else{
cout<<t->data;
trave(t->l);
trave(t->r);
}
}
int main(){
B t;
creat(t);
trave(t);
}