DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1:

输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。

第一行输入二叉树的先序遍历序列;
第二行输入二叉树的中序遍历序列。

输出该二叉树的后序遍历序列。

ABDCEF

BDAECF

 

DBEFCA

代码:

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char pre_name[100];
char in_name[100];
struct Node
{
    char ch;
    Node *lefted,*righted;
    Node():ch(0),lefted(NULL),righted(NULL) {}
};
Node *Root;
Node *build(int L1,int R1,int L2,int R2)//前序找根,中序分割建树
{
    if(L2>R2)return NULL;
    Node *root;
    root=new Node();
    root->ch=pre_name[L1];
    int p=L2;
    while(in_name[p]!=root->ch)p++;
    int cnt=p-L2;
    root->lefted=build(L1+1,L1+cnt,L2,p-1);
    root->righted=build(L1+cnt+1,R1,p+1,R2);
    return root;
}
void select_post(Node *tree)
{
    if(tree)
    {
        select_post(tree->lefted);
        select_post(tree->righted);
        cout<<tree->ch;
    }
}
int main()
{
    scanf("%s%s",pre_name,in_name);
    int n=strlen(pre_name);
    Root=build(0,n-1,0,n-1);
    select_post(Root);
    cout<<endl;
    return 0;
}
 

posted on   DoubleLi  阅读(189)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2017-07-17 Linux下几种RTP协议实现的比较和JRTPLIB编程讲解
2017-07-17 使用librtmp进行H264与AAC直播
2017-07-17 简述RTMPDump与编译移植
2017-07-17 linux 编译安装TRMPdump(libRTMP)
2013-07-17 如何为WPF添加Main()函数 程序入口点的修改
2012-07-17 MFC中UpdateData()函数的使用 .
2012-07-17 MFC设置窗体背景图片(画刷) .
点击右上角即可分享
微信分享提示