中序线索化二叉树程序

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:35:06
中序线索化二叉树程序代码

#include <iostream.h>
typedef char elemtype ;
typedef enum{ Link , Thread } PointerTag;
typedef struct node{
elemtype data;
PointerTag leftChildTag,rightChildTag;
struct node *leftChild, *rightChild;
}ThreadBitreeNode,*ThreadBitree;
//先序创建线索二叉树
void InOrderThreadBitreeCreate(ThreadBitree &T)
{
char ch;
cin>>ch;
if(ch!='*')
{
T=new ThreadBitreeNode;
T->data=ch;
T->leftChildTag=T->rightChildTag=Link;
T->leftChild=NULL;
T->rightChild=NULL;
InOrderThreadBitreeCreate(T->leftChild);
InOrderThreadBitreeCreate(T->rightChild);
}
else T=NULL;
}

//中序线索化二叉树
void Threading(ThreadBitree p,ThreadBitree &pre)
{
if(p)
{
Threading(p->leftChild,pre);
if(p->leftChild==NULL)
{
p->leftChild=pre;
p->leftChildTag=Thread;
}
if(pre-&