重建二叉树(先序+中序 : 中序+后序)
来源:互联网 发布:苹果炒股软件 编辑:程序博客网 时间:2024/06/05 02:20
由中序遍历 分别和前序遍历,后序遍历进行建树的方法:
// 由中序和后序遍历序列进行建树, 返回根结点指针
Node * InPostCreateTree(int *mid,int *post,int len){
if(len == 0)
return NULL;
int i=len-1;
while(post[len-1] != mid[i])
--i;
Node *h=NewNode();
h->data=post[len-1];
h->left=InPostCreateTree(mid,post,i);
h->right=InPostCreateTree(mid+i+1,post+i,len-i-1);
return h;
}
// 由前序和中序遍历序列进行建树, 返回根结点的指针
Node * PreInCreateTree(int *mid,int *pre,int len) //n标识s2的长度
{
if(len==0)
return NULL;
int i = 0;
while(*mid != pre[i])
++i;
Node *h=NewNode();
h->data= *mid;
h->left = PreInCreateTree(mid+1, pre, i);
h->right = PreInCreateTree(mid+i+1, pre+i+1, len-i-1);
return h;
}
// 由中序和后序遍历序列进行建树, 返回根结点指针
Node * InPostCreateTree(int *mid,int *post,int len){
if(len == 0)
return NULL;
int i=len-1;
while(post[len-1] != mid[i])
--i;
Node *h=NewNode();
h->data=post[len-1];
h->left=InPostCreateTree(mid,post,i);
h->right=InPostCreateTree(mid+i+1,post+i,len-i-1);
return h;
}
// 由前序和中序遍历序列进行建树, 返回根结点的指针
Node * PreInCreateTree(int *mid,int *pre,int len) //n标识s2的长度
{
if(len==0)
return NULL;
int i = 0;
while(*mid != pre[i])
++i;
Node *h=NewNode();
h->data= *mid;
h->left = PreInCreateTree(mid+1, pre, i);
h->right = PreInCreateTree(mid+i+1, pre+i+1, len-i-1);
return h;
}
- 重建二叉树(先序+中序 : 中序+后序)
- 二叉树重建 - (先序遍历、中序遍历、后序遍历)
- 二叉树重建(先序+中序)
- 先序和中序重建二叉树 后序输出
- 七:重建二叉树(根据先序遍历(或者后序遍历)和中序遍历重建二叉树)
- 根据先序和中序遍历重建二叉树
- 根据先序和中序重建二叉树
- 依据先序和中序-重建二叉树
- 根据先序,中序重建二叉树
- 根据先序和中序重建二叉树:
- 二叉树遍历(中序,先序->后序;中序,后序->先序)
- 剑指offer--重建二叉树[根据二叉树的先序、中序遍历结果重建二叉树]
- 二叉树 (先序,中序,后序遍历 )
- 二叉树先(中)(后)序遍历
- 根据二叉树的先序、中序遍历结果重建二叉树
- 根据二叉树的先序和中序遍历重建二叉树
- 根据二叉树的先序、中序遍历结果重建二叉树
- 根据二叉树的先序、中序遍历结果重建二叉树
- mysql
- C++ - const
- 學習 Python 的好環境
- VC++编写ActiveX控件
- 《双语不用教》DVD套装目录
- 重建二叉树(先序+中序 : 中序+后序)
- 给页面加音效
- 各种可以参考的网络文章(持续更新中)
- JNI编程中C调用Java实现。
- Android内存优化详解
- 指针数组和数组指针
- dll的调用
- Windows7下安装Oracle 10g提示“程序异常终止,发生未知错误”的解决方法
- JNI入门第一篇——HelloWord