题目大意就是给出你一个二叉树的前序和中序,要你求后序。

思路:二叉树的排序就是根据根节点的位置来定义的。所以找到二叉树的根节点是最重要的,二叉树的左子树和右子树也可以看成是二叉树,以此递归;

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Node{
char ch;
struct Node *left;
struct Node *right;
}Node;
char mid[],pre[];//pre用来存放前序 mid用来存放中序
int n=-;
void make_tree(int i,int j){//递归构造树,最重要的是找到根节点,再分别对左子树和右子树进行递归;
int k;
if(i>j) return;
n++;
for(k=i;k<=j;k++){
if(pre[n]==mid[k]) break;
}
make_tree(i,k-);
make_tree(k+,j);
printf("%c",mid[k]);
/*
如果是求前序
prinf("%c",mid[k]);
make_tree(i,k-1);
make_tree(k+1,j);
*/
}
int main(){
int i,j,k;
while(scanf("%s%s",pre,mid)==){
make_tree(,strlen(pre)-);
printf("\n");
n=-;
}
return ;
}

//参考博客http://blog.csdn.net/cbs612537/article/details/8530294

最新文章

  1. JSPatch 实现原理详解
  2. backbone学习总结(一)
  3. Timus Online Judge 1001. Reverse Root
  4. HTML5原生拖放实例分析
  5. Dreamweaver 制作图片热点之后,点击热点部分会有个提示框,怎么去掉
  6. 华为OJ平台——整数的二进制中1的个数
  7. SQL Server 2012 performance dashboard 安装
  8. [记录] javascript 对象中使用setTimeout
  9. QR code 乱谈(一)
  10. Java基础知识强化之网络编程笔记07:TCP之服务器给客户端一个反馈案例
  11. adb Logcat用法
  12. angularjs的懒加载
  13. 【tomcat8】consider increasing the maximum size of the cache
  14. Linux上的文件搜索
  15. modal verbs(一)
  16. c/c++ socket API 调用后的错误判断 perror errno
  17. sqlserver常用语法
  18. 第一章 CSS基础
  19. Tree Implementation with Python
  20. 使用vlc实现视频TS流的推送

热门文章

  1. [Effective C++ --023]宁以non-member、non-friend替换member函数
  2. 程序员谈学习:我为什么要学习Linux?
  3. JAVA_eclipse 保留Java文件时自动格式化代码和优化Import
  4. httperf ---linux web站点压力测试
  5. CentOS7 发布 ASP.NET MVC 4 --- mono 4.6.0 + jexus 5.8.1
  6. [引]MSDN Visual Basic 和 C# 中都会用到的编程概念
  7. 面试之SQL
  8. .NET学习笔记(4) — C#数据类型
  9. 怎么关闭InstantRun
  10. db2相关问题及解决方法