二叉搜索树定义
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。(源自百度百科)
以上图为例:
中序遍历的结果为:2 5 9 12 15 16 17 18 19 刚好为链表连接顺序
Node*prev = NULL;
void Foreach1(Node*node)
{
node->left = prev;
if (prev != NULL)
{
prev->right = node;
}
prev = node;
}
void SeachTreeList(Node*root)//二叉搜索树转链表
{//链表的顺序和中序遍历的一样
if (root != NULL)
{
SeachTreeList(root->left);
Foreach1(root);
SeachTreeList(root->right);
}
return;
}