中序后序确定二叉树的前序序列
来源:互联网 发布:阿里云服务器备案 编辑:程序博客网 时间:2024/06/06 22:14
#include <map>#include <set>#include <stack>#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn=1000;char post[maxn],in[maxn];struct Node { char val; Node *left,*right; Node(char v=0,Node *l=NULL,Node *r=NULL):val(v),left(l),right(r){}};Node *makeTree(int i,int j,int size) //i表示后序遍历序列的开始下标,j是中序遍历的下标,size表示序列长度{ if(size==0) //size为空说明子树为空树,返回NULL return NULL; int root; for(int k=j;k<j+size;k++) //选择后序遍历中的根在中序遍历序列中的位置,由此确定左右子树的节点个数,root一定可以找到 { if(post[i+size-1]==in[k]) { root=k;break; } } int leftNum=root-j; //左子树的节点个数 int rightNum=size-leftNum-1;//右子树的节点个数 Node *left=makeTree(i,j,leftNum);//i+1为左子树的根 Node *right=makeTree(i+leftNum,root+1,rightNum);//i+leftNum+1为右子树的根 Node *r=new Node(post[i+size-1],left,right);//生成根节点 return r;}void deleteTree(Node *root)//递归删除树{ if(root==NULL) return; deleteTree(root->left); deleteTree(root->right); delete root;}void preOrder(Node *root){ if(!root) return; printf("%c",root->val); preOrder(root->left); preOrder(root->right);}int main(){#ifdef LOCAL_DEBUGfreopen("input.txt","r",stdin);#endif while(~scanf("%s%s",post,in)) { Node *root = makeTree(0,0,strlen(post)); preOrder(root); deleteTree(root); } return 0;}
0 0
- 中序后序确定二叉树的前序序列
- 根据前序和中序序列确定二叉树
- 前序遍历和中序遍历序列能确定唯一的一棵二叉树
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- 5.由树的前序序列和中序序列来确定树的结构
- 算法竞赛入门经典:第六章 数据结构基础 6.9 根据二叉树的后序和中序确定前序序列
- 利用二叉树中序及先序遍历确定该二叉树的后序序列(0984)
- 从二叉树的前序遍历序列和中序遍历序列重构出二叉树
- 由二叉树的前序序列和中序序列构建二叉树
- 判断二叉搜索树的前序遍历序列
- 二叉搜索树的前序遍历序列
- 根据中序序列和前序序列,求二叉树的后序序列
- 根据二叉树的前序序列和中序序列得到后序序列
- 由二叉树的前序遍历序列和中序遍历序列求后序遍历序列
- 遍历序列唯一确定二叉树的问题
- 已知二叉树的前序序列和中序序列,求二叉树的后序序列
- 大家思考一道题:已知二叉树的前序和后序,能确定多少个二叉树?
- Linux 上的基础网络设备详解
- linux arm移植触摸屏tslib
- python多进程队列的2种实现方法
- ArrayAdapter
- Building an MFC project for a non-Unicode character set is deprecated
- 中序后序确定二叉树的前序序列
- hdu2437
- 记第一个15年
- hadoop命令,学到哪记到哪。
- Java诞生二十周年:回顾编程世界主宰的成长历程
- 自定义ArrayAdapter深入
- ab压力测试: apr_socket_recv: Connection timed out (110)
- ActiveMQ消息传送机制以及ACK机制详解
- UE中使用正则表达式的一些技巧