已知后序中序求先序(二叉树)
来源:互联网 发布:eugen systems知乎 编辑:程序博客网 时间:2024/05/18 14:44
#include<stdio.h>#include<string.h>struct Node{ Node *lchild; Node *rchild; char c;}Tree[50];int loc; //记录节点个数char str1[300],str2[300];Node *Create(){ Tree[loc].lchild=Tree[loc].rchild=NULL; return &Tree[loc++];}void preOrder(Node *T){ printf("%c ",T->c); if(T->lchild!=NULL) preOrder(T->lchild); if(T->rchild!=NULL) preOrder(T->rchild);}Node *build(int s1,int e1,int s2,int e2){ Node *ret = Create(); ret->c=str1[e1]; int idx=0,i; for(i=s2;i<=e2;++i) { if(str1[e1]==str2[i]) { idx=i; break; } } if(idx!=s2) ret->lchild=build(s1,s1+(idx-s2)-1,s2,idx-1); if(idx!=e2) ret->rchild=build(s1+(idx-s2),e1-1,idx+1,e2); return ret;}int main(){ //第一个字符串表示二叉树的后序遍历序列,第二个字符串表示二叉树的中序遍历序列 while(scanf("%s",str1)!=EOF) { scanf("%s",str2); loc=0; int L1=strlen(str1); int L2=strlen(str2); Node *T=build(0,L1-1,0,L2-1); preOrder(T); printf("\n"); } return 0;}
0 0
- 已知后序中序求先序(二叉树)
- 二叉树已知先序中序求后序,已知后序中序求先序
- 已知二叉树先序中序求后序,已知后序中序求先序
- 二叉树的重建,已知先序中序求后序,已知后序中序求先序
- 二叉树遍历(已知前中序,求后序)
- 二叉树已知前序中序求后序
- 二叉树已知中序前序求后序
- 二叉树已知先序中序求后序、已知中序后序求先序
- 已知中序后序创建二叉树
- 二叉树_已知先序中序求后序
- 已知前序中序->构建二叉树
- 已知二叉树前序中序,构造二叉树
- 已知二叉树后序中序,构造二叉树
- 已知二叉树前序中序遍历重建二叉树
- SOJ-2664(已知满二叉树的后序求中序遍历)
- 二叉树,已知后序和中序求先序(递归)
- NYOJ221二叉树重建(已知先序和中序求后序)
- 二叉树构造 (已知先序 和中序)
- 折半查找法
- Mac 常见的命令行interface
- JavaScript简介
- wfs方式获取最短路径
- 归并排序算法 iOS
- 已知后序中序求先序(二叉树)
- Http协议详解
- 《Java 2 实用教程》读书笔记(三)
- java位运算及其四则表示
- 了解 Spring Data JPA
- PHP数据加密技术之一---URL编码加密技术
- ln函数详解
- C#正则表达式
- C++和C#进程之间通过命名管道通信(附源码)—下