#include<iostream>
#include<stdlib.h>
using namespace std;
struct elemtype{
int value;
};
typedef struct bitnode{
elemtype data;
struct bitnode *lchild,*rchild;
int ltag,rtag;
}bitnode,*bitree;
bitree pre=NULL;
void visit(bitree &l)
{
if(l->lchild==NULL)
{
l->lchild=pre;
l->ltag=1;
}
if(pre!=NULL&&pre->lchild==NULL)
{
pre->rchild=l;
pre->rtag=1;
}
pre=l;
}
void createbitree(bitree &l)
{
int a;
cin>>a;
if(a==99999)
l=NULL;
else{
l=(bitree)malloc(sizeof(bitnode));
l->data={a};
createbitree(l->lchild);
createbitree(l->rchild);
}
}
void postorder(bitree &l)
{
if(l!=NULL)
{
postorder(l->lchild);
postorder(l->rchild);
visit(l);
}
}
bitree nextnode( bitree p) //ºóÐòÑ°ÕÒÇ°Çý
{
if(p->rtag==1)
return p->lchild;
else
{
if(p->rtag==0)
return p->rchild;
else
return p->lchild;
}
}
int main()
{
bitree l;
createbitree(l);
postorder(l);
pre->rchild=NULL;
pre->rtag=1;
return 0;
}
数据结构-后序线索二叉树实现
最新推荐文章于 2024-10-17 15:34:15 发布