#define MAX 100 typedef struct node { char info; struct node *llink,*rlink; }TNODE; char pred[MAX],inod[MAX]; TNODE *restore(char *,char *,int); int main(int argc,char **argv) { TNODE *root; if (argc<3) exit(0); strcpy(pred,argv[1]); strcpy(inod,argv[2]); root=restore(pred,inod,strlen(pred)); postorder(root); printf("\n\n"); return 1; } TNODE *restore(char *ppos,char *ipos,int n) { TNODE *ptr; char *rpos; int k; if (n<=0) return NULL; ptr=(TNODE *)malloc(sizeof(TNODE)); ptr->info=*ppos; for (rpos=ipos;ipos<ipos;rpos++) if (*rpos==*ppos) break; k=rpos-ipos; ptr->llink=restore(ppos+1,ipos,k); ptr->rlink=restore(ppos+1+k,ipos+k+1,n-1-k); return ptr; } postorder(TNODE *ptr) { if (ptr==NULL) return; postorder(ptr->llink); postorder(ptr->rlink); printf("%c",ptr->info); }
根据前序遍历和中序遍历求出二叉树并打印
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:Python:函数的返回值
下一篇:提取图标
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
二叉树---(3)前序遍历,中序遍历,后序遍历
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次
数据结构 二叉树 子树 中序遍历 前序遍历 -
二叉树的遍历:前序、中序、后序遍历Java基础