zoj 1944 Tree Recovery(数据结构)
2012-03-02 21:42
218 查看
知道前序和中序球后序。数据结构没好好学啊,这下报应来了,人工推谁都会,方法也都知道就是递归中序序列分组嘛,,,写不出来啊。
还是要仰慕下芒果大神。还没开始写,他就过了。...囧
以后oj建起来了,一定要把这道题加进去,,,学弟妹不能走我老路啊
此题,可建树也可不建
总的思路是dfs中序序列,用个全局标记前序的,根据前序分组。
不建树版本:
建树的(其实一样了)
那么要是球前序或者是球中序呢?....好难
还是要仰慕下芒果大神。还没开始写,他就过了。...囧
以后oj建起来了,一定要把这道题加进去,,,学弟妹不能走我老路啊
此题,可建树也可不建
总的思路是dfs中序序列,用个全局标记前序的,根据前序分组。
不建树版本:
#include<stdio.h> #include<string.h> char s1[30],s2[30]; int i; void dfs(int left,int right) { int j; if(left>right) return ; if(left==right)//找到根 { ++i; printf("%c",s2[left]); return; } for(j=left;j<=right;++j) { if(s1[i]==s2[j]) break; } ++i; dfs(left,j-1); dfs(j+1,right); printf("%c",s2[j]); } int main() { int root,l; while(scanf("%s%s",s1,s2)!=EOF) { l=strlen(s1); i=0; dfs(0,l-1); printf("\n"); } return 0; }
建树的(其实一样了)
#include<stdio.h> #include<string.h> char s1[30],s2[30]; int i; struct node { int left,right; }a[30]; int dfs(int left,int right) { int j; if(left>right) return -1; if(left==right) { ++i; return s2[left]-'A'; } for(j=left;j<=right;++j) { if(s1[i]==s2[j]) break; } ++i; a[s2[j]-'A'].left=dfs(left,j-1); a[s2[j]-'A'].right=dfs(j+1,right); return s2[j]-'A'; } void dfs2(int x) { if(a[x].left!=-1) dfs2(a[x].left); if(a[x].right!=-1) dfs2(a[x].right); printf("%c",x+'A'); } int main() { int root,l; while(scanf("%s%s",s1,s2)!=EOF) { l=strlen(s1); for(i=0;i<26;++i) a[i].left=a[i].right=-1; i=0; root=dfs(0,l-1); dfs2(root); printf("\n"); } }
那么要是球前序或者是球中序呢?....好难
相关文章推荐
- 【ZOJ 1944】 Tree Recovery
- zoj 1944 Tree Recovery
- zoj 1944 Tree Recovery
- zoj 1944 Tree Recovery (二叉树)
- zoj 3210 A Stack or A Queue? (数据结构水题)
- zoj2180 City Game(DP/数据结构)
- ZOJ 1423 (Your)((Term)((Project))) (模拟+数据结构)
- zoj 3210 A Stack or A Queue? (数据结构水题)
- ZOJ1944(Tree Recovery)
- ZOJ 1004 Anagrams by Stack(DFS+数据结构)
- 高级数据结构(树状数组套主席树):ZOJ 2112 Dynamic Rankings
- zoj 1745 Tree Recovery
- ZOJ Problem Set - 1002 Fire Net
- openCv学习笔记(三)——openCv数据结构之间的转换
- ZOJ Problem Set -1259 Rails
- 数据结构 二分查找/奇偶调序/hash易错点
- hdu 4056 Draw a Mess(数据结构-并查集)
- 数据结构第三章-队列
- 数据结构单链表前驱结点的寻找过程,仅用一个结点指针即可完成
- ZOJ 2425-H - Inversion-给逆序对构造序列(构造)