题目:http://acm.hdu.edu.cn/showproblem.php?pid=1710

大意:给出一个二叉树的前序和中序,求其后序遍历

ps:1.在写链表时,需要写明typedef struct node{};即声明一个指向自己的数据类型,而不是直接写struct node{}

2.采用分治的思想,把一颗二叉树分解成n棵二叉树,每棵都有其对应的根节点,利用这点进行遍历

3.malloc在#include<stdlib.h>头文件中

4.这是自己第一次写数据结构树型题目,所以代码是借鉴而来的

 #include<iostream>
#include<stdio.h>
#include<stdlib.h> using namespace std; typedef struct node{
node *l,*r;
int num;
}tree; tree *root; tree *creat(int *a,int *b,int n){
tree *t;
for(int i=;i<n;i++){
if(a[] == b[i]){//找到根节点
t = (tree *)malloc(sizeof(tree));
t->num = b[i];
t->l = creat(a+,b,i);
t->r = creat(a+i+,b+i+,n-i-);
return t;
}
}
return NULL;
} void houxu(tree *h){
if(h!=NULL){
houxu(h->l);
houxu(h->r);
if(h == root)
cout<<h->num<<endl; //最后是根节点
else
cout<<h->num<<" ";
}
return ;
} int main(){
int n;
int a[],b[];
while(cin>>n){
for(int i=;i<n;i++)
scanf("%d",a+i);
for(int i=;i<n;i++)
scanf("%d",b+i);
root = creat(a,b,n);
tree *h = root;
houxu(h);
}
return ;
}

hdu 1710 二叉树的遍历的更多相关文章

  1. HDU 1710 二叉树的遍历 Binary Tree Traversals

    Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  2. HDU 1710 二叉树遍历,输入前、中序求后序

    1.HDU  1710  Binary Tree Traversals 2.链接:http://acm.hust.edu.cn/vjudge/problem/33792 3.总结:记录下根结点,再拆分 ...

  3. HDU 1710 二叉树三种遍历

    Binary Tree Traversals Problem Description A binary tree is a finite set of vertices that is either ...

  4. HDU 1710 二叉树遍历

    首先.先序遍历是先访问根节点.然后左节点 然后右节点.从根节点开始 直到它的子节点没有左节点才开始回溯访问上一个节点的右节点.同理.中序遍历 先访问左节点 然后是父节点 然后是右节点.从根节点开始 直 ...

  5. HDU 1710 Binary Tree Traversals(二叉树)

    题目地址:HDU 1710 已知二叉树先序和中序求后序. #include <stdio.h> #include <string.h> int a[1001], cnt; ty ...

  6. 二叉树的遍历(递归,迭代,Morris遍历)

    二叉树的三种遍历方法: 先序,中序,后序,这三种遍历方式每一个都可以用递归,迭代,Morris三种形式实现,其中Morris效率最高,空间复杂度为O(1). 主要参考博客: 二叉树的遍历(递归,迭代, ...

  7. C++ 二叉树深度优先遍历和广度优先遍历

    二叉树的创建代码==>C++ 创建和遍历二叉树 深度优先遍历:是沿着树的深度遍历树的节点,尽可能深的搜索树的分支. //深度优先遍历二叉树void depthFirstSearch(Tree r ...

  8. 二叉树的遍历(递归,迭代,Morris遍历)

    二叉树的遍历: 先序,中序,后序: 二叉树的遍历有三种常见的方法, 最简单的实现就是递归调用, 另外就是飞递归的迭代调用, 最后还有O(1)空间的morris遍历: 二叉树的结构定义: struct ...

  9. [Leetcode] Binary tree level order traversal二叉树层次遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

随机推荐

  1. JAVA程序的创建与编辑

    1.JAVA项目的创建与命令编辑 打开JAVA程序,选择工具栏上的创建按钮旁边的小三角,在下拉菜单中选择创建JAVA项目,在出现的对话窗口中输入项目名,在JRE使用执行环境中选择可用的资源包,如果安装 ...

  2. Android 获取存储空间

    package com.example.getMem; import java.io.File; import android.os.Build;import android.os.Bundle;im ...

  3. CodeForces 384A Coder

    Coder Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  4. C#中() =>是什么意思

    如题C#中() =>是什么意思,比如 public ICommand AddCommand { get { if (this.addCommand == null) this.addComman ...

  5. Metasploit基础命令

    msf > show exploits 列Metasploip的所有可用的渗透测试框架.在MSF终端中可以针对渗透测试中发现的安全漏洞来实施相应的渗透攻击. msf > show auxi ...

  6. implement Google's Open Source Slam "Cartographer" demos in ROS/rviz

    Cartographer is a backpack equipped with Simultaneous Localization and Mapping (SLAM) technology. 1. ...

  7. 不同浏览器对document.documentElement和document.body的scrollheight ,scrollTop,clientHeight以及判断滚动条是否滚动到页面最底部 【转载】

    前段时间学习怎么写一个瀑布流的时候,就接触到document.documentElement和document.body的区别,然后今天查资料的时候看到这篇博客,遂转载记录在此. 两种特殊的文档属性可 ...

  8. nginx安装配置域名转发

    1.安装pcre 1.[root@localhost home]# tar zxvf pcre-8.10.tar.gz //解压缩 2.[root@localhost home]# cd pcre-8 ...

  9. mysql概要(十一)存储引擎

    1.数据库对同样的数据可以不同的方式存储和管理,每种方式对应一种引擎. 1.1定义: 2.引擎种类的特点:

  10. JavaWeb项目的classpath说明

    概念解释: classpath : 即项目中WEB-INF下面的classes目录; 应用: [01] src路径下的文件在编译后会放到WEB-INF/classes路径下.默认的classpath是 ...