#include<iostream>
using namespace std;
typedef struct Binode
{
int data;
struct Binode *lchild,*rchild;
}Binode,*Bitree;
Bitree phead=NULL;
Bitree pindex=NULL;
void SortTree(Bitree &T,int element)
{
if(T==NULL)
{
Bitree current=(Binode*)malloc(sizeof(Binode));
current->data=element;
current->lchild=current->rchild=NULL;
T=current;
}
else if(element>T->data)
SortTree(T->rchild,element);
else if(element<T->data)
SortTree(T->lchild,element);
}
void ConvertToDoubleList(Bitree T)
{
T->lchild=pindex;
if(pindex==NULL)
{
phead=T;
}
else
{
pindex->rchild=T;
}
pindex=T;
cout<<T->data<<" ";
}
void InTraverse(Bitree T)
{
if(T==NULL)
{
return ;
}
if(T->lchild!=NULL)
{
InTraverse(T->lchild);
}
ConvertToDoubleList(T);
if(T->rchild!=NULL)
{
InTraverse(T->rchild);
}
}
int main()
{
Bitree T;
T=NULL;
SortTree(T,10);
SortTree(T,8);
SortTree(T,6);
SortTree(T,9);
SortTree(T,12);
SortTree(T,11);
SortTree(T,14);
InTraverse(T);
cout<<endl;
system("pause");
return 0;
}
二叉搜索树转化为双向链表
最新推荐文章于 2020-09-24 09:22:29 发布