请问 二叉树中有没有所谓的先序 中序 后序创建的算法?

来源:百度知道 编辑:UC知道 时间:2024/06/16 13:48:10
RT

感觉所谓先 中 后序的说法只存在于遍历算法中吧?

请问是不是这样的说法?

比如我写的下面这个我个人认为是先序和中序的创建算法,用先序遍历算法去遍历后所得结果完全一样的

void BiTree::InCreate(Tnode &Tn)//中序创建
{
Elemtype Data;
cin>>Data;
Tn=(Tnode)malloc(sizeof(BiTreeNode));
if(Data=='#')//if语句判断条件的写法仍把变量输入值认为是char型
{
Tn->lchild=NULL;
Tn->rchild=NULL;
}
else
{
PreCreate(Tn->lchild);
Tn->data=Data;
PreCreate(Tn->rchild);
}
}

void BiTree::PreCreate(Tnode &Tn)//先序创建
{
Elemtype Data;
cin>>Data;
Tn=(Tnode)malloc(sizeof(BiTreeNode));
Tn->data=Data;
if(Data=='#')//if语句判断条件的写法仍把变量输入值认为是char型
{
Tn->lchild=NULL;
Tn->rchild=NULL;
}
else
{
PreCreate(Tn->lchild);
PreCreate(Tn->rchild);
}
}

void BiTree::PreOrderTraverse(Tnode &Tn)//先序遍历
{
if(Tn)//&&Tn->

数据结构要应用到程序中,通常情况下,父节点和子节点或者叶子,代表了不同的变量或结构,根据程序的算法来创建结点,所以你单纯说创建的顺序是没有意义的

给定一个结点顺列,无论是按先序、中序还是后序创建树都是不准确的,因为单单给出这三种顺序中的一种是无法确定这棵二叉树的具体结构的,三者中至少二种才可以确定,所以说创建的顺序是没有意义的