大家不会的可以看一下我的一篇文章我是链接-关于二叉树遍历的基础知识
本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。

输入格式:
第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。

输出格式:
在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。

输入样例:
7
2 3 1 5 7 6 4
1 2 3 4 5 6 7
输出样例:
Preorder: 4 1 3 2 6 5 7

注意,c编译器不能通过,原因是c编译器不支持(*pe)->data=key这种操作.需要用c++编译器。不能理解二位指针的看我点我

#include<stdio.h>
#include<stdlib.h>
int  back[50];
int mid[50];
struct Node{int data;struct Node *r,*l;
};
typedef Node node;
node *head=NULL;
int i;
void dff(node **pe, int beg,int end)
{//这里隐式就是pe=&head;//所以*pe=head;//这样我们就不需要返回head的地址了if(beg>end){return;}int key=back[i];int j;for(j=beg; j<=end; j++){if(key==mid[j]) break;}node *p;p=(node*)malloc(sizeof(node));*pe=p;(*pe)->data=key;(*pe)->l=NULL;(*pe)->r=NULL; i--;dff(&(*pe)->r,j+1,end);dff(&(*pe)->l,beg,j-1);
}
void dis_l(node *pe)
{if(pe!=NULL){printf(" %d",pe->data);dis_l(pe->l);dis_l(pe->r);}
}
void free_l(node *pe)
{if(pe){/*if(pe->l)*/  free_l(pe->l);/*if(pe->r)*/  free_l(pe->r);free(pe);}
}
int main(void)
{int len;scanf("%d",&len);for(int j=0; j<len; j++) scanf("%d",back+j);for(int j=0; j<len; j++) scanf("%d",mid+j);i=len-1;dff(&head,0,len-1);//这里把head的地址传进去,于是我们就可以操作head的值了printf("Preorder:");dis_l(head);free_l(head);return 0;
}

pta 7-6 根据后序和中序遍历输出先序遍历 (25 分)相关推荐

  1. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)

    7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...

  2. 7-9 根据后序和中序遍历输出先序遍历 (10 分)

    7-9 根据后序和中序遍历输出先序遍历 (10 分) 本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N(≤30),是树中结点的个数.随后两 ...

  3. 刷题之完全二叉树的权值和小字辈及根据后序和中序遍历输出先序遍历

    1.完全二叉树的权值 1)题目 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, ··· AN,如下图所示: 现在小明要把相同深度的节 ...

  4. 4-15 根据后序和中序遍历输出先序遍历

    4-15 根据后序和中序遍历输出先序遍历 分数 15 作者 DS课程组 单位 浙江大学 本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N( ...

  5. 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

    思路分析: 这道题考察二叉树的建立以及二叉树的前序遍历.中序遍历和后序遍历.首先按照先序建立二叉树.在这期间需要先建立一个结构体,包括当前节点的值,以及它的左儿子和右儿子.注意这里不能直接存左儿子和右 ...

  6. 根据后序和中序遍历输出先序遍历

    本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N(≤30),是树中结点的个数.随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果, ...

  7. 由树先序遍历和中序遍历输出其后续遍历

    递归的三个必要条件 1. 弄明白递归的顺序.在递归的实现中,需要假设后续的调用已经完成,在此基础上,才实现递归的算法,先考虑后面的逻辑. 2. 分析清楚递归体的逻辑,然后写出来.具体的递归体需要解决什 ...

  8. java输出乱序日语假名

    package com.test;import java.util.ArrayList; import java.util.Arrays; import java.util.List; import ...

  9. pta习题:给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。

    5-6 树的遍历 分数 20 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一 ...

最新文章

  1. python中怎么输入角度_在Python中更正两点之间的角度
  2. 用 openssl 生成 SSL 使用的私钥和证书,并自己做 CA 签名
  3. Mac修改pip为国内源
  4. 最小,独立,可分发的跨平台Web服务器
  5. HDU2025 查找最大元素【入门】
  6. Q88:全局光照(Global Illumination)——Path Tracing算法生成反射焦散效果的图形
  7. 【python】QQ 空间照片下载器
  8. 前端中适配各种手机模式的一种解决办法
  9. java Outlook的日程_使用Outlook进行日程安排的方法
  10. 来看看小夏的链表讲解吧---从单链表到输入输出,查找元素,删除结点。---谨以此文祝朋友们生日快乐与官宣发糖。
  11. wireshark出现rst的原因_多次RST以及不同场景下的RST报文的差异
  12. java 矩阵求逆_详解用java描述矩阵求逆的算法
  13. Python制作当年第一款真正意义上的手机游戏——贪吃蛇游戏
  14. 谨以此文纪念我的2020——不负热爱,砥砺前行
  15. 自学编程的妙方法,直接省了几万块钱报班,不收藏就可惜了!
  16. (未完成)历届国赛题目分析(2005)
  17. 【强制删除空白页】wps
  18. 计算机硕士论文,盲审的老师都很严吗? - 易智编译EaseEditing
  19. vue子组件修改父组件上的属性
  20. ZStack云平台云主机的日常管理操作

热门文章

  1. 【OpenCV 4开发详解】高斯滤波
  2. C++——创建类的时候用new与不用new 的区别(转)
  3. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
  4. 语音文件转成文字怎么转
  5. Python轻松爬取Rosimm写真网站全部图片
  6. 【原创】ASP.NET C# 盗取中国银行汇率表
  7. C#下如何实现服务器+客户端的聊天程序
  8. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)
  9. items属性的combo_【内存消耗问题】DataGridViewComboboxColoumn关于Items属性和DataSource属性的性能开销问题...
  10. 幼儿园语言活动包括哪几类_幼儿园小班语言游戏教案你问我答对话活动教学【幼儿教师教案】...