重建二叉树
来源:互联网 发布:安装python没有idle 编辑:程序博客网 时间:2024/05/01 02:10
- 题目描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。
- 重建二叉树算法:
bool ReBuildBiTree(BiNode **root, int *preorder, int *inorder, int len){ if (preorder == NULL || inorder == NULL) { return false; } BiNode *pTmp = new BiNode; pTmp->data = *preorder; pTmp->lchild = NULL; pTmp->rchild = NULL; if (*root == NULL) { *root = pTmp; } if (len == 0) { if (*preorder == *inorder) return true; else return false; } int *pRootIn = inorder; int lchild_len = 0; int rchild_len = 0; while(lchild_len <= len) { if (*pRootIn == *preorder) { break; } ++pRootIn; ++lchild_len; } if (lchild_len > len) { return false; } rchild_len = len - lchild_len - 1; if (lchild_len > 0) { if(!ReBuildBiTree(&(*root)->lchild, preorder + 1, inorder, lchild_len)) return false; } if (rchild_len > 0) { if(!ReBuildBiTree(&(*root)->rchild, preorder + lchild_len + 1, inorder + lchild_len + 1, rchild_len)) return false; } return true;}
- 3.9重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 二叉树的重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- linux操作系统下c语言编程入门
- 《分数的加法运算编程——JAVA第三周》
- hdu1251 统计难题 数据结构之Trie树
- c++ static的作用,以及static对象在类和函数中区别
- Weblogic10 常用linux指令
- 重建二叉树
- JAVA中的"指针"
- 求前N个质数
- 使用java实现双向链表数据结构
- rand()和srand()
- archlinux批量添加用户
- org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
- mac 下的yun命令 Homebrew
- 胡子决定编程语言运势