给定一棵二叉树的前序遍历和中序遍历,求其后序遍历

简介: 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历
#include <string.h>
struct Node{
    Node *lChild;
    Node *rChild;
    char c;
}Tree[50];      //静态内存分配数组
int loc;        //静态数组中已经分配的结点个数
Node *creat()
{
    Tree[loc].lChild = Tree[loc].rChild = NULL;
    return &Tree[loc++];
}
char str1[30],str2[30];
void postOrder(Node *T)
{
    if(T->lChild != NULL)
    {
        postOrder(T->lChild);
    }
    if(T->rChild != NULL)
    {
        postOrder(T->rChild);
    }
    printf("%c",T->c);
}
Node *build(int s1,int e1,int s2,int e2)
{
    Node *ret = creat();
    ret->c = str1[s1];
    int rootIdx;
    for(int i = s2;i <= e2;i++)
    {
        if(str2[i] == str1[s1])
        {
            rootIdx = i;
            break;
        }
    }
    if(rootIdx != s2)
    {
        ret->lChild = build(s1 + 1,s1 + (rootIdx - s2),s2,rootIdx - 1);
    }
    if(rootIdx != e2)
    {
        ret->rChild = build(s1 + (rootIdx - s2) + 1,e1,rootIdx + 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);
        postOrder(T);
        printf("\n");
    }
    return 0;
}

目录
相关文章
|
机器学习/深度学习 人工智能 算法
通俗认识理解OpenAI Five
通俗认识理解OpenAI Five
556 0
|
网络协议 Linux Android开发
告别无法访问的github(附解决方案)
最近一行在使用github的时候又登不上去了,挂着NPV都没用 据说是某些不可描述的有关组织机构对该网站的DNS污染或者随机丢包造成的
21924 5
告别无法访问的github(附解决方案)
|
机器学习/深度学习 缓存 PyTorch
异步数据加载技巧:实现 DataLoader 的最佳实践
【8月更文第29天】在深度学习中,数据加载是整个训练流程中的一个关键步骤。为了最大化硬件资源的利用率并提高训练效率,使用高效的数据加载策略变得尤为重要。本文将探讨如何通过异步加载和多线程/多进程技术来优化 DataLoader 的性能。
1920 1
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch使用专题 | 2 :Pytorch中数据读取-Dataset、Dataloader 、TensorDataset 和 Sampler 的使用
介绍Pytorch中数据读取-Dataset、Dataloader 、TensorDataset 和 Sampler 的使用
|
数据采集 机器学习/深度学习 存储
性能调优指南:针对 DataLoader 的高级配置与优化
【8月更文第29天】在深度学习项目中,数据加载和预处理通常是瓶颈之一,特别是在处理大规模数据集时。PyTorch 的 `DataLoader` 提供了丰富的功能来加速这一过程,但默认设置往往不能满足所有场景下的最优性能。本文将介绍如何对 `DataLoader` 进行高级配置和优化,以提高数据加载速度,从而加快整体训练流程。
1850 0
|
机器学习/深度学习 算法 Python
【Python】已解决:ModuleNotFoundError: No module named ‘sklearn‘
【Python】已解决:ModuleNotFoundError: No module named ‘sklearn‘
8624 0
|
数据可视化 IDE Java
PlanUML和Mermaid哪个好?
PlanUML和Mermaid哪个好?
2456 0
|
人工智能 自然语言处理 达摩院
轻松使用阿里达摩院开源在魔搭社区上的CLUE语义匹配模型
本文将介绍达摩院NLP团队在魔搭社区(ModelScope)上开源的语义匹配模型及其使用方法。
52968 3
轻松使用阿里达摩院开源在魔搭社区上的CLUE语义匹配模型
|
消息中间件 SQL 分布式计算
大数据自学指南
最强大数据自学,白嫖系统培训。
大数据自学指南
|
机器学习/深度学习 人工智能 PyTorch
深度学习四大框架之争(Tensorflow、Pytorch、Keras和Paddle)
深度学习四大框架之争(Tensorflow、Pytorch、Keras和Paddle)
深度学习四大框架之争(Tensorflow、Pytorch、Keras和Paddle)