online_judge_1078
来源:互联网 发布:敏捷软件开发 源代码 编辑:程序博客网 时间:2024/06/06 15:50
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct Tnode{ struct Tnode *lchild,*rchild; char e;}Tnode;Tnode Tree[50];int loc;char str1[30],str2[30];Tnode *Create(){ Tree[loc].lchild=Tree[loc].rchild=NULL; return &Tree[loc++];}Tnode *Build(int low1,int high1,int low2,int high2){ int i=low2; Tnode *ret=Create(); ret->e=str1[low1]; while(str1[low1]!=str2[i]) i++; if(i!=low2) ret->lchild=Build(low1+1,low1+i-low2,low2,i-1); if(i!=high2) ret->rchild=Build(low1+i-low2+1,high1,i+1,high2); return ret;}void PostOrder(Tnode *t){ if(t) { PostOrder(t->lchild); PostOrder(t->rchild); printf("%c",t->e); }}int main(){ int len1,len2; Tnode *Tr; while((gets(str1)!=NULL)&&(gets(str2)!=NULL)) { loc=0; len1=strlen(str1); len2=strlen(str2); Tr=Build(0,len1-1,0,len2-1); PostOrder(Tr); printf("\n"); } return 1;}
这道题目并不是我自己单独完成。参考王道机试指南浙大满分帝所写的代码。
自己还是对树和图的相关操作不熟悉!
0 0