数据结构C语言版第九章 查找.pptVIP

  • 7
  • 0
  • 约1.16万字
  • 约 72页
  • 2017-08-11 发布于湖北
  • 举报
数据结构C语言版第九章 查找

(3)二叉排序树的删除 1、概念:二叉排序树的删除是指从二叉排序树中删除一个结点后,要保证删除后所得二叉树仍然满足二叉排序树的性质不变,即相当于删除有序序列中的一个结点。 2、操作过程:首先要对二叉排序树进行查找,确定要删除的结点是否在二叉排序树中。若不在,则不作任何操作;否则,我们假设要删除的结点为p,结点p的双亲结点为f,下面分三种情况讨论: 左改双亲左,右改中序遍历直接前驱右 ASL=1/6[1+2+3+4+5+6]=21/6=7/2=(n+1)/2 *f *p 9.2. 动态查找表 *p *f 方法:直接令PL或PR作为*f的左子树即可 f-lchild=p-lchild(或f-lchild=p-rchild);free(p); 50 30 80 20 90 85 40 35 88 32 (3)被删除的结点p既有左子树,也有右子树 方法一: 40 40 实现:用结点s的值替代结点p的值,将结点s双亲的右指针域改为指向结点s的左子树,然后再删除结点s 。 被删结点p 中序遍历前驱结点s 被删关键字p = 50 9.2. 动态查找表 假设结点s的双亲结点为q即: p-data=s-data; q-rchild=s-lchild; free(s); 50 30 80 20 90 85 40 35 88 32 30

文档评论(0)

1亿VIP精品文档

相关文档