输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
来源:互联网 发布:java开源聊天机器人 编辑:程序博客网 时间:2024/05/16 11:35
思路:根据前序遍历依次访问对应的中序遍历的节点,分为左子树和右子树创建。
#include<iostream>#include<stdlib.h>using namespace std;struct BinaryTreeNode{BinaryTreeNode(int _value):m_nValue(_value),m_pLeft(NULL),m_pRight(NULL){}int m_nValue;struct BinaryTreeNode* m_pLeft;struct BinaryTreeNode* m_pRight;};BinaryTreeNode* Buildtree(int* pre,int* mid,int n){if(n==0){return NULL;}int num=pre[0];BinaryTreeNode* head=new BinaryTreeNode(num);int i=0;while(i<n&&mid[i]!=num) //求左子树的长度{i++;}int left_len=i; //左子树的长度int right_len=n-1-i; //右子树的长度if(left_len>0) //构建左子树{head->m_pLeft=Buildtree(&pre[1],&mid[0],left_len);}if(right_len>0) //构建右子树{head->m_pRight=Buildtree(&pre[left_len+1],&mid[left_len+1],right_len);}return head;}void PreOrder(BinaryTreeNode* head){if(head==NULL){return;}cout<<head->m_nValue<<"->";PreOrder(head->m_pLeft);PreOrder(head->m_pRight);}void MidOrder(BinaryTreeNode* head){if(head==NULL){return;}MidOrder(head->m_pLeft);cout<<head->m_nValue<<"->";MidOrder(head->m_pRight);}int main(){int pre[]={1,2,4,7,3,5,6,8};int mid[]={4,7,2,1,5,3,8,6};BinaryTreeNode* head=Buildtree(pre,mid,8);PreOrder(head);cout<<endl;MidOrder(head);system("pause");return 0;}
本文出自 “liveyoung” 博客,转载请与作者联系!
0 0
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序和中序遍历结果,重建该二叉树
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,重建该二叉树
- 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- java 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 《剑指Offer》 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 根据二叉树的前序遍历和中序遍历的结果,请重建出该二叉树
- 输入二叉树的前序遍历和中序遍历,重建出该二叉树
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- 死锁问题
- 生产者消费者模型
- 一组数中,有两个数字各出现了一次,其他数字都是成对出现的,请找出这两个数。
- 读写锁
- 信号量 (线程互斥)
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- 两个栈实现一个队。
- 【JZOJ 3432】【OnlineJudge 1061】小M的服务器(含斜率优化解释)
- poj之旅——3484
- 请实现一个函数,把字符串中的每个空格替换成“%20”。
- 设计一个类,我们只能生成该类的一个实例。
- 输入一个链表的头结点,从尾到头反过来打印每个节点的值。
- 如何在AIX上安装axis2c
- 在一个二维数组中,每一行都从左到右递增,每一列都从上到下递增,在这样一个数组里查找一个数