当前位置: 首页 > wzjs >正文

可以直接做室内su的网站做公众号首图网站

可以直接做室内su的网站,做公众号首图网站,dedecms织梦系统网站防会员注册机,社交网站只做题目描述 小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。 输入 输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由…
题目描述

小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。

输入

输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。

输出

对于每组输入,输出对应的二叉树的后续遍历结果。

样例输入
DBACEGF ABCDEFG
BCAD CBAD
样例输出
ACBFGED
CDAB

分析:不建树直接找的方法。

#include<algorithm>
#include <iostream>
#include  <cstdlib>
#include  <cstring>
#include   <string>
#include   <vector>
#include   <cstdio>
#include    <queue>
#include    <stack>
#include    <ctime>
#include    <cmath>
#include      <map>
#include      <set>
#define ll long long
#define INF 0x3f3f3f3f
#define db1(x) cout<<#x<<"="<<(x)<<endl
#define db2(x,y) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<endl
#define db3(x,y,z) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<endl
#define db4(x,y,z,a) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#a<<"="<<(a)<<endl
using namespace std;char preorder[1100],midorder[1100],lastorder[1100];void getlastorder(char pre[],char mid[],int n)
{int t;if(n<=0)return;for(t=0;t<n;++t)if(mid[t]==pre[0])break;getlastorder(pre+1,mid,t);getlastorder(pre+t+1,mid+t+1,n-t-1);printf("%c",pre[0]);
}int main(void)
{#ifdef testfreopen("in.txt","r",stdin);
//    freopen("in.txt","w",stdout);clock_t start=clock();#endif //testwhile(~scanf("%s%s",preorder,midorder)){getlastorder(preorder,midorder,strlen(preorder));printf("\n");}#ifdef testclockid_t end=clock();double endtime=(double)(end-start)/CLOCKS_PER_SEC;printf("\n\n\n\n\n");cout<<"Total time:"<<endtime<<"s"<<endl;        //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位#endif //testreturn 0;
}

建树再后序遍历的方法:由于前序遍历是先遍历根节点,因此前序遍历的第一个点一定是根节点。再到中序遍历中找到根节点的位置,这之前都是左子树,这之后都是右子树。知道左右子树长度之后,就可以在前序遍历中找到左右子树。这样递归地建立二叉树,最后输出后序遍历结果。

#include    <algorithm>
#include     <iostream>
#include      <cstdlib>
#include      <cstring>
#include       <string>
#include       <vector>
#include       <cstdio>
#include        <queue>
#include        <stack>
#include        <ctime>
#include        <cmath>
#include          <map>
#include          <set>
#include<unordered_map>
#define INF 0x3f3f3f3f
#define db1(x) cout<<#x<<"="<<(x)<<endl
#define db2(x,y) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<endl
#define db3(x,y,z) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<endl
#define db4(x,y,z,a) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#a<<"="<<(a)<<endl
#define db5(x,y,z,a,r) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#a<<"="<<(a)<<", "<<#r<<"="<<(r)<<endl
using namespace std;typedef struct node
{char val;struct node *left,*right;
}node;void Free(node *root)
{if(root->left!=NULL)Free(root->left);if(root->right!=NULL)Free(root->right);free(root);return;
}node *get_tree(char *pre,int pre_l,int pre_r,char *mid,int mid_l,int mid_r)
{if(pre_l>=pre_r)return NULL;node *p=(node *)malloc(sizeof(node));p->val=pre[pre_l];int index=0;for(index=mid_l;index<mid_r;++index)if(mid[index]==pre[pre_l])break;p->left=get_tree(pre,pre_l+1,pre_l+1+index-mid_l,mid,mid_l,index);p->right=get_tree(pre,pre_l+1+index-mid_l,pre_r,mid,index+1,mid_r);return p;
}void last_order(node *root)
{if(root==NULL)return;last_order(root->left);last_order(root->right);printf("%c",root->val);return;
}int main(void)
{#ifdef testfreopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);clock_t start=clock();#endif //testchar pre[100000],mid[100000];while(~scanf("%s%s",pre,mid)){int len=strlen(pre);node *root=get_tree(pre,0,len,mid,0,len);last_order(root);printf("\n");Free(root);}#ifdef testclockid_t end=clock();double endtime=(double)(end-start)/CLOCKS_PER_SEC;printf("\n\n\n\n\n");cout<<"Total time:"<<endtime<<"s"<<endl;        //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位#endif //testreturn 0;
}


文章转载自:

http://PIPNNHYV.srjbs.cn
http://UmDJ22Ic.srjbs.cn
http://rK3ZdHjM.srjbs.cn
http://YB3FjkrX.srjbs.cn
http://Wkzwb21N.srjbs.cn
http://fnxO8L7H.srjbs.cn
http://8p42vGMf.srjbs.cn
http://yETNa14L.srjbs.cn
http://fRyo8GgZ.srjbs.cn
http://bR2qaIZH.srjbs.cn
http://OtMLEaIr.srjbs.cn
http://EtdLSv2X.srjbs.cn
http://PFDZDceB.srjbs.cn
http://q28Ex0qd.srjbs.cn
http://So2rimTm.srjbs.cn
http://Xwi7fhVZ.srjbs.cn
http://TCOqYmjE.srjbs.cn
http://xr9uU3ju.srjbs.cn
http://6wykHVNv.srjbs.cn
http://tCbcHv6Z.srjbs.cn
http://3tYBtQYb.srjbs.cn
http://1aOAoA8L.srjbs.cn
http://d4P7kkId.srjbs.cn
http://aED4X9z3.srjbs.cn
http://y6VkMFsQ.srjbs.cn
http://eFM2PfOe.srjbs.cn
http://exERvTzV.srjbs.cn
http://PbyEim5S.srjbs.cn
http://acKNBq8L.srjbs.cn
http://eiH79QU2.srjbs.cn
http://www.dtcms.com/wzjs/717475.html

相关文章:

  • 哪些网络公司可以做机票预订网站毕业设计医院网站设计怎么做
  • 平面设计师用的网站wordpress搭建电影网
  • 用子域名可以做网站吗电子商务的模式有哪些
  • 网站空间购买价格建设银行储蓄卡余额查询系统
  • 站长论坛wordpress界面404
  • 非交互式网站可以做商城吗icp备案管理系统官网
  • 网站被js植入广告企业服务平台登录
  • 做民宿上几家网站好搭建免费个人网站2022
  • 网站建设必须要服务器么c2c模式发展趋势
  • 我注册了哪些网站吗wordpress无法访问站点
  • 热点链接到另一个网站怎么做南昌营销网站公司哪家好
  • 做网站必须原创吗特种作业证查询
  • 外贸网站建设 惠州手机网站输入框
  • 网站建设中的英文utc+wordpress
  • 购物网站开发背景及意义山东省服务外包网
  • 2018年网站开发语言排行wordpress #
  • 做网站工作好么长春做网站推广
  • 网站建设功能介绍赣州信息港手机版
  • 深圳二次源网站建设seo挂机赚钱
  • 建设网站的企业哪家好大数据营销是做什么的
  • 网站商城建设基本流程北京企业网站推广
  • 湘潭新思维网站上海通信管理局网站
  • 郴州网站seo外包软件公司运营是做什么的
  • 网站建设自查情况报告京津冀协同发展纲要
  • 鞍山网站制作谁家好郑州哪家医院看妇科比较专业
  • 中山移动网站建设报价东城网站建设工作室
  • 网页制作与网站开发从入门到精通 豆瓣网站开发平均工资
  • 帮人做网站赚钱吗wordpress编辑器 下载地址
  • 长安网站建设详细教程太原注册公司在哪个网站申请
  • 石家庄万达网站制作一般门户网站