某二叉树使用二叉链表存储,通过中序遍历打印结点数据可得到从大到小的数据序列,请编写一个函数将此二叉树进行变换以得到一棵二叉排序树(提示:可通过将所有结点的左右子树交换得到,请定义必要的数据结构)
//定义二叉树链式存储结构
typedef struct BiTNode {
int data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode;
void BSTree (BiTNode *T) {
if (T == NULL)
return 0;
else {
BiTNode *temp;
temp = T->rchild;
T->rchild = T->lchild;
T->lchild = temp;
BSTree(T->rchild);
BSTree(T->lchild);
return 0;
}
}