上海 网站公司,关键词排名点击器,做网站首页代码,wordpress多平台自动提交题目描述 已知二叉树的一个按先序遍历输入的字符序列#xff0c;如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 输入 连续输入多组数据#xff0c;每组数据输入一个长度小于50个字符的字符串。 输出 每组输入数据对应输出2行#x…题目描述 已知二叉树的一个按先序遍历输入的字符序列如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 输入 连续输入多组数据每组数据输入一个长度小于50个字符的字符串。 输出 每组输入数据对应输出2行 第1行输出中序遍历序列 第2行输出后序遍历序列。 示例输入 abc,,de,g,,f,,, 示例输出 cbegdfa cgefdba 提示
#include stdio.h #includestring.h #includestdlib.h typedef char Status; typedef char telemtype; typedef struct BiTNode { Status data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; Status str[55]; int i; Status CreateBiTree(BiTree T)//由先序序列建二叉树 { if(str[i],) TNULL; else { T(BiTNode *)malloc(sizeof(BiTNode)); if(!T) exit(0); T-datastr[i-1]; CreateBiTree(T-lchild); CreateBiTree(T-rchild); } return 1; } void inorder(BiTree T)//中序二叉树 { if(T) { inorder(T-lchild); printf(%c,T-data); inorder(T-rchild); } } void postorder(BiTree T)//后序二叉树 { if(T) { postorder(T-lchild); postorder(T-rchild); printf(%c,T-data); } } int main() { BiTree T; while(~scanf(%s,str)) { i0; CreateBiTree(T);//生成二叉树 inorder(T);//中序二叉树 printf(\n); postorder(T);//后序二叉树 printf(\n); } return 0; }