递归经典 后序+中序 输出树的先序遍历
来源:互联网 发布:seo和sem的区别 编辑:程序博客网 时间:2024/04/30 20:24
//从后序和中序的顺序中 转换成树的先序输出
//无比经典,自己写的递归程序
//用到了数据结构和递归程序
//string的构造函数 string(str,org,length) 注意第三个参数是从org开始数几个字符长
//还有这种函数 用传root的方法比较清楚
#include <string>
#include <cstdio>
#include <iostream>
#include <cstdlib>
using namespace std;
typedef struct TREE
{
string str;
TREE* lefttree;
TREE* righttree;
TREE(string aa){ str=aa;lefttree=NULL;righttree=NULL; }
} tree;
void display(TREE* r)
{
if(r==NULL)
return ;
cout<<r->str;
display(r->lefttree);
display(r->righttree);
}
void clear(TREE* r)
{
if(r==NULL)
return ;
clear(r->lefttree);
clear(r->righttree);
delete r;
}
void buildtree(string mid,string post,tree* tr) //mid是中序,post是后序字符串,tr中是中序的字符串
{
if( mid.length()==1 )
return ;
int left=mid.find( post[post.length()-1] );
int right=left+1;
string ll( mid,0,left );
string rr( mid,right); //应该是到底
string t1(post,0,ll.length());
string t2(post,ll.length(),post.length()-1-ll.length());
tree* ltr=new tree(ll);
tree* rtr=new tree(rr);
tr->str=post[post.length()-1];
tr->lefttree=ltr;
tr->righttree=rtr;
buildtree( ll,t1,ltr );
buildtree( rr,t2,rtr );
}
int main()
{
tree* root=new tree(string("HDIBJEKAMFNCOGP"));
string mm("HDIBJEKAMFNCOGP");
string pp("HIDJKEBMNFOPGCA");
buildtree(mm,pp,root);
display(root);
cout<<endl;
clear(root);
getchar();
return 0;
}
- 递归经典 后序+中序 输出树的先序遍历
- 二叉树的先序、中序、后序递归遍历和非递归遍历
- [转载]树的先序遍历,中序遍历,后序遍历的非递归写法
- 二叉树T 的先序遍历、中序遍历、后序遍历(递归实现)
- 二叉树的先序、中序、后序遍历的递归和非递归实现
- 二叉树的后序,先序,中序遍历的非递归遍历
- 二叉树的先序、中序、后序、层序递归及非递归遍历
- 二叉树的先序/中序/后序(递归、非递归)+层序遍历
- 二叉树的递归创建,先序(中序、后序)递归遍历二叉树
- 二叉树的遍历 中序 后序 先序 递归 非递归
- 二叉树的创建和先序,中序,后序,递归,非递归遍历
- 二叉树的遍历 先序 中序 后序 递归非递归
- 二叉树的先序、中序、后序遍历(递归 and 非递归)
- 给出二叉树的先序和中序遍历,递归求解后序遍历
- 二叉树的先序遍历、中序遍历以及后序遍历(递归以及非递归方式)
- 树--递归实现先、中、后遍历,层序遍历和树的深度
- 【二叉树】 先,中,后序遍历输出
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- jQuery-toggle()与toggle(fn,fn)的用法
- 第一课:Hello World
- jQuery代码的14条改善技巧
- Proguard混淆后无法正常运行的问题
- 还有9天......
- 递归经典 后序+中序 输出树的先序遍历
- 读书笔记(Head.First设计模式)
- vim高级配置
- 如何解决OutOfMemoryError: Java heap space
- JavaScript常用的函数
- 未来五年程序员应当具备的十项技能
- Ubuntu 9.10 安装vim 以及Vim介绍比较
- 请懂的 讲解一下用法?
- JList中加载图片和文字,实现好友列表