求二叉树线索化的源程序

来源:百度知道 编辑:UC知道 时间:2024/07/06 23:26:53
用C语言的~~~~急急!请大侠们伸出援助之手啊

我没学过C,这是C++的算法!
你该一下就可以了!很好改!
#include<iostream.h>
struct bitree
{
char data;
bitree *lchild,*rchild;
int ltag,rtag;
};
bitree *pre;
void Createbitree(bitree *&head) //构造二叉树head;
{
char ch;
cin>>ch;
if (ch=='?') head = NULL;
else {
head=new bitree;
head->data = ch;
head->ltag=0;
head->rtag=0;
Createbitree(head->lchild);
Createbitree(head->rchild);
}
}
void treading(bitree *head)
{
if(head)
{
treading(head->lchild);
if(!head->lchild)
{
head->ltag=1;head->lchild=pre;
}
if(!pre->rchild)
{
pre->rtag=1;pre->rchild=head;
}
pre=head;
treading(head->rchild);
}
}
void inorderthreading(bitree*& HEAD,bitree *head)
{
HEAD=new bitree;
if(