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
原创粉丝点击