当前位置:主页 > 电脑教程 > 数据库 > 数据库综合

第七节 二叉排序树

时间:2010-08-18 | 栏目:数据库综合 | 点击:

第七节 二叉排序树

一、概念
    所谓二叉排序树是指具有下列性质的非空二叉树
    ⑴ 若根结点的左子树不空,则左子树的所有结点值均小于根结点值;
    ⑵ 若根结点的右子树不空,则右子树的所有结点值均不小于根结点值;
    ⑶ 根结的左右树也分别为二叉排序树;
    显然,对二叉排序树进行中序遍历,可得出结点值递增的排序序列。
 

{假设待排序的数存在数组a中}
procedure createtree;
begin
  fillchar(b,sizeof(b),0);
  b[1].data:=a[1];     {二叉排序树初始化}
  for i:=2 to n do
    begin
      b[i] .data:=a[i];
      p:=1;
      while true do
       begin
        if a[i]<b[p].data  {若a[i]<b[p].data,顺左指针方向寻找顶点i的插入位置}
           then if b[p].l<>0
                 then p:=b[p].l
                 else begin b[p].l:=i;break;end
           else             {若a[i]≥b[p].data 时顺右指针方向寻找顶点i的插入位置}
               if b[p].r<>0
                 then p:=b[p].r
                 else begin b[p].r:=i; break; end;
       end;{while}
   end;{for}
end;{createtree}

您可能感兴趣的文章:

相关文章