编写程序将存储在双向链表中的数存储到二叉排序树中,要求转换过程中数存储的结点地址不变。(8分)
定义一个通用结构体
//定义一个通用结构体
typedef int ElemType;
typedef struct DuLNode {
ElemType data;
struct DuLNode *priorLeft, *nextRight;
}DuLNode,BiTNode;
向二叉树中添加结点
void AddNode(BiTNode** tree, DuLNode* node)
{
if (*tree==NULL)
{
*tree = node;
(*tree)->priorLeft = NULL;
(*tree)->nextRight = NULL;
return;
}
if ((*tree)->data>node->data)
{
if ((*tree)->priorLeft==NULL)
{
(*tree)->priorLeft = node;
(*tree)->priorLeft->priorLeft = NULL;
(*tree)->priorLeft->nextRight = NULL;
}
else {
AddNode(&((*tree)->priorLeft), node);
}
}
if ((*tree)->