前序,中序,后序,层序互求
程序员文章站
2022-03-03 10:25:53
...
1、中序,后序重构二叉树
struct node *rebuild(char *a, char *b, int n)//a为已知中序,b为已知后序
{
struct node *root;
int i;
if(n==0) return NULL;
root = (struct node*)malloc(sizeof(struct node));
root->data = b[n-1];
for(i = 0; i<n; i++)
{
if(a[i] == b[n-1]) break;
}
root->lchild = rebuild(a ,b, i);
root->rchild = rebuild(a+i+1, b+i, n-i-1);
return root;
}
2、前序,中序重构二叉树
struct node *rebuild(char *a, char *b, int n)//a为已知前序, b为已知中序
{
struct node *root;
int i;
if(n==0) return NULL;
root = (struct node*)malloc(sizeof(struct node));
root->data = a[0];
for(i = 0; i<n; i++)
{
if(b[i] == a[0]) break;
}
root->lchild = rebuild(a+1,b, i);
root->rchild = rebuild(a+i+1, b+i+1, n-i-1);
return root;
}
待更新
推荐阅读
-
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
-
c/c++ 用前序和中序,或者中序和后序,创建二叉树
-
Python实现二叉树前序、中序、后序及层次遍历示例代码
-
【算法】二叉树的前序、中序、后序、层序遍历和还原。
-
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
-
L2-006 树的遍历 (后序中序求层序)
-
已知后序遍历和中序遍历求层序遍历(树的遍历)
-
二叉树遍历 前序遍历 后序遍历 中序遍历 非递归前序遍历 二叉树遍历非递归
-
树与二叉树 树二叉树前序、中序、后序遍历先根遍历后根遍历
-
【LeetCode】二叉树各种遍历大汇总(秒杀前序、中序、后序、层序)递归 & 迭代