已知二叉树的先根遍历和中序遍历,求后序遍历的算法?

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:02:50
麻烦详细写出由先根和中根还原出原来二叉树的算法!

线索二叉树算法

#include <stdio.h>
#include <malloc.h>
#include<stdlib.h>
typedef char DataType;/*定义DataType类型*/
typedef enum {Link,Thread}PointerTag;
typedef struct node{
DataType data;
struct node *lchild, *rchild;/*左右孩子子树*/
PointerTag LTag,RTag;
}BiThrNode; /*结点类型*/
typedef BiThrNode *BiThrTree ;/*二叉树类型*/
void CreatBinTree(BiThrTree *T)
{ /*构造二叉链表,注意:输入序列是先序序列*/
char ch;
if ((ch=getchar())==' ')
*T=NULL;
else{ /*读入非空格*/
*T=(BiThrNode *)malloc(sizeof(BiThrNode));/*生成结点*/
(*T)->data=ch;(*T)->LTag=Link;(*T)->RTag=Link;
CreatBinTree(&(*T)->lchild); /*构造左子树 */
CreatBinTree(&(*T)->rchild); /*构造右子树*/
}
}
BiThrTree pre;/*全局变量*/
void InThreading(BiThrTree p)
{
if(p)
{InThreading(p->lchild);/*左子树线索化*/
if(!p->lchild){p->LTag=Thread;p->lchild=pre;}/*前驱线索*/
if(!pre->rchild){pre->R

已知二叉树的先根遍历和中序遍历,求后序遍历的算法? 已知二叉树的先序遍历顺序和后序遍历顺序,能否知道其中序遍历顺序? 已知一棵二叉树的先序遍历序列和中序遍历序列,编写一个程序唯一确定一棵二叉树 二叉树的建立及先、中、后序遍历 已知二叉树的前序和后序,能否写出中序遍历? 已知二叉树T中结点的前序和中序遍历序列建立一棵二叉树 已知二叉树后序遍历序列是dabec,中序遍历序列debac,它的前序遍历的序列是 已知二叉树后序遍历序列是DABEC 中序遍历列是 DEBAC ,它的前序遍历序列是: 一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,该二叉树的后序遍历是什么?请给出详细答案.谢 已知二叉树的后序遍历序列dabec,中序遍历序列是debac,它的前序遍历序列是什么