前序中序求后序
程序员文章站
2022-05-19 20:58:23
...
#include <iostream>
#include <string>
using namespace std;
struct Node
{
char val ;
Node *rc , *lc ;
} ;
Node* rebuild(string pre,string mid)
{
int i , len ;
Node *head = new Node() ;
head->val = pre[0] ;
//cout << pre<< " " << mid << endl ;
len = mid.length() ;
for(i=0;i<len;i++)
{
if(pre[0]==mid[i])
{
if(i!=0)
{
head->lc = rebuild(pre.substr(1,i),mid.substr(0,i));//зѓзгЪї
}
else{
head->lc = NULL ;
}
if(i!=len-1)
{
head->rc = rebuild(pre.substr(i+1,len-1-i),mid.substr(i+1,len-1-i));//гвзгЪї
}
else{
head->rc = NULL ;
}
}
}
return head ;
}
void after(Node *head)
{
if(head==NULL)
{
return ;
}
else{
if(head->lc!=NULL)
after(head->lc) ;
if(head->rc!=NULL)
after(head->rc) ;
cout << head->val << endl ;
}
}
int main()
{
string pre , mid ;
Node *head = NULL ;
while(cin>>pre>>mid)
{
Node * head ;
head = rebuild(pre,mid) ;
after(head) ;
}
return 0;
}
上一篇: ijkplayer框架深入剖析
下一篇: 打印一下二叉树呗
推荐阅读
-
Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】
-
Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】
-
Python实现二叉树前序、中序、后序及层次遍历示例代码
-
Python利用前序和中序遍历结果重建二叉树的方法
-
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
-
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
-
[PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
-
c/c++ 用前序和中序,或者中序和后序,创建二叉树
-
Python实现二叉树前序、中序、后序及层次遍历示例代码
-
【算法】二叉树的前序、中序、后序、层序遍历和还原。