文档详情

数据结构课件-11-2二叉查找树.pptx

发布:2025-04-07约1.64千字共18页下载文档
文本预览下载声明

数据结构计算机领域本科教育教学改革试点工作计划(“101计划”)研究成果俞勇、张铭、陈越、韩文弢上海交通大学、北京大学、浙江大学、清华大学101

11.2二叉查找树第11章查找林劼电子科技大学

11.2.1二叉查找树11.2.2二叉查找树-插入11.2.3二叉查找树-删除11.2.4查找性能分析11.2.5作业

11.2二叉查找树二叉查找树(BST)1.定义二叉查找树或者是一棵空树;或者是具有如下特性的二叉树:若根结点的左子树不空,则左子树上所有结点的值均小于根结点的值;若根结点的右子树不空,则右子树上所有结点的值均大于根结点的值;左、右子树本身也是一棵二叉查找树。中序遍历序列:23,37,45,54,65,78,82,85,87,94

例如:不50308020901085403525238866是二叉查找树。11.2二叉查找树

11.2二叉查找树二叉查找树key=45ppppkey=81ppp|查找

二叉查找树的插入算法11.2二叉查找树“插入”操作在查找不成功时才进行;

11..2二叉查找树305240插入80?检查80是否在树中?8040,所以必定应该是40的右子树80插入35?检查35是否在树中?3540,所以必定应该是40的左子树35插入25?检查25是否在树中?255,所以必定应该是5的右子树2511.2.2二叉排序树的插入

11.2二叉查找树(1)被删除的结点是叶子(2)被删除的结点只有左子树或者只有右子树(3)被删除的结点既有左子树,也有右子树11.2.3二叉排序树的删除算法删除可分三种情况讨论:

50308020908540358832(1)被删除的结点是叶子结点被删关键字=2088Tfpfp其双亲结点中相应指针域的值改为“空”11.2二叉查找树

50308020908540358832(2)被删除的结点只有左子树或者只有右子树被删关键字=4080Tfpfp其双亲结点的相应指针域的值改为“指向被删除结点的左子树或右子树”。11.2二叉查找树

50308020908540358832(3)被删除的结点既有左子树,也有右子树4040被删结点p前驱结点s被删关键字=50Tqps以其前驱替代之,然后再删除该前驱结点11.2二叉查找树

/*右子树为空树则只需重接它的左子树*/q=p;p=p-lchild;f-lchild=p;free(q);(f-rchild=p)ppffpqqp11.2二叉查找树

/*左子树为空树只需重接它的右子树*/q=p;p=p-rchild;f-lchild=p;free(q);(f-rchild=p)ppffqqpp11.2二叉查找树

11.2.4查找性能的分析对于一棵特定的二叉排序树,均可按照平均查找长度的定义来求它的ASL值,n个关键字,由于查找顺序不同可构造出不同形态的多棵二叉排序树,其平均查找长度的值不同,甚至可能差别很大。11.2二叉查找树

由关键字序列3,1,2,5,4构造而得的二叉排序树,例如:由关键字序列1,2,3,4,5构造而得的二叉排序树,35412ASL=(1+2+3+4+5)/5=3ASL=(1+2+3+2+3)/5=2.221345查找性能的分析11.2二叉查找树

11.2.5作业11.2二叉查找树数据结构1、请画出在下图所示二叉查找树中删除结点4之后的二叉查找树。

101

显示全部
相似文档