《操作系统》课程教学资源(PPT课件)第十章 内部排序

二叉排序树上的删除,相当于删去 有序序列上的一个记录,应保证删 除结点后,二叉排序树的特性不变 删除结点可有三种情况: 1若被删除结点*为叶子结点,即其p和 p均为空树。由于叶子结点的存在若不 破坏整株树的结构,则只需修改其父结 点的指针即可。 2若*p结点只有左子树p或只有右子树p 此时只要令P或pR直接成为其父结点*f
二叉排序树上的删除,相当于删去 有序序列上的一个记录,应保证删 除结点后,二叉排序树的特性不变。 删除结点可有三种情况: 1.若被删除结点*p为叶子结点,即其pL和 pR均为空树。由于叶子结点的存在若不 破坏整株树的结构,则只需修改其父结 点的指针即可。 2.若*p结点只有左子树pL或只有右子树pR, 此时只要令pL或pR直接成为其父结点*f

的左子树即可。可见,也不破坏二叉排序 1树的特性 3若*结点的左、右子树均不空,不能简 单处理,可有两种情况。例 P PR
的左子树即可。可见,也不破坏二叉排序 树的特性。 3.若*p结点的左、右子树均不空,不能简 单处理,可有两种情况。例: F P f p pL pR (a)

F p P C Q Q C S (b)
f F P C p cCL Q P RqS Q L S L S F C cCL S S f S L P R (b) (c)

F C C q Q Q (d)
f F S C p c CL Q PR q QL SL (d)

叉排序树中删除一个 结点的算法 DeleteBST(T key) t if(!t return False else i if(EQ(key, T->data. key)) return Delete(D) if(LT( key T->data. key)) return DeleteBST(T->lchild, key) else return DeleteBST(T->rchild, keyi S//DeleteBST
二叉排序树中删除一个 结点的算法 DeleteBST(T , key) { if(!T) return False; else { if(EQ(key, T->data.key)) return Delete(T); if(LT(key,T->data.key)) return DeleteBST(T->lchild,key); else return DeleteBST(T->rchild,key);} }//DeleteBST

上述三种情况的删除算法 Delete(p)/*p被删除点* tif(!p-> rchild)/*右子树空接其左子树* a=p; p=p->lchild; free il else if(!p->lhid)/*只接其右子树* tq=p; p=p->rchild free ai else &q=p: s=p->lchild;
上述三种情况的删除算法 Delete(p)/*p被删除点*/ { if(!p->rchild) /*右子树空接其左子树*/ {q=p;p=p->lchild;free(q);} else if(!p->lchild)/*只接其右子树*/ { q=p;p=p->rchild;free(q);} else { q=p; s=p->lchild;

while(s->rchild) q=s, s=p->lchild;y /*转左,然后向右到尽头* p->data=s->data;/*s指向删除结点的前驱* f(q!=p)q>rchd=s-> child;/*接*p的右子树*/ else q>chid=s->hid;/*接*p的左子树*/ delete s } return TrUe 3//Delete
while(s->rchild) { q=s; s=p->lchild;} /*转左,然后向右到尽头*/ p->data= s->data;/*s指向删除结点的前驱*/ if(q!=p) q->rchild= s->lchild;/*接*p的右子树*/ else q->lchild=s->lchild;/*接*p的左子树*/ delete s; } return TRUE; } //Delete

叉排序树的查找分类 从平均查找长度分析: 设有6个记录,其关键字序列为 (452453123793)或由另一种序列构成 (1224,37455393)其对应的二叉排序树: 45 24 37 53 45 12)③37(93) 53 (b) (93)
三.二叉排序树的查找分类 从平均查找长度分析: 设有6个记录,其关键字序列为 (45,24,53,12,37,93)或由另一种序列构成 (12,24,37,45,53,93)其对应的二叉排序树: 45 24 53 12 37 93 12 53 45 37 24 93 (a) (b)

(a)树的深度为3(b)树的深度为6 若每个记录的查找概率相等,为6 则树的平均查找长度为: 14 AsLa)=(1+2+2+3+3+3)= Aso=(1+2+3+4+5+6)=21 查找关键字与给定值的结点的过程,是从 根结点到该结点路径的过程,和给定值比 较的关键字个数等于路径长度加1(或结点
(a)树的深度为3 (b)树的深度为6 若每个记录的查找概率相等,为 , 则树的平均查找长度为: AsL(a)= (1+2+2+3+3+3)= AsL(b)= (1+2+3+4+5+6)= 查找关键字与给定值的结点的过程,是从 根结点到该结点路径的过程,和给定值比 较的关键字个数等于路径长度加1(或结点 6 1 6 1 6 14 6 1 6 21

所在层次数) 4可见,含有n个结点的二叉排序树 的平均查找时间和树的形态有关 若构造二叉排序树时,按关键字有序构造, 树的深度为n。其平均查找长度为2,这 是最差的情况。 若二叉排序树的形态和折半查找的判定 树相同。其平均查找长度Log2n成正比
所在层次数)。 可见,含有n个结点的二叉排序树 的平均查找时间和树的形态有关。 若构造二叉排序树时,按关键字有序构造, 树的深度为n。其平均查找长度为 ,这 是最差的情况。 若二叉排序树的形态和折半查找的判定 树相同。其平均查找长度Log2n成正比。 2 n +1
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十四讲 典型功能模块分析.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第一讲 ASP.NET概述.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第五讲 基本Web服务器控件的应用计.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十九讲 Repeater控件应用.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十讲 ASP.NET内置对象(一).ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第三讲 JavaScript脚本.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第七讲 ASP.NET服务器控件(三).ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第六讲 ASP.NET服务器控件(二).ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第九讲 页面跳转与数据传输.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十讲 DataList控件应用.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二讲 C#知识回顾.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第八讲 ASP.NET验证控件.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十二讲 Treeview控件.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十八讲 利用 Gridview控件显示数据.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十六讲 DataSet对象.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十四讲 DataReader对象的使用.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十五讲 DataAdapter对象.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十一讲 ASP.NET增强服务器 控件.ppt
- 《MMS Visual Studio .NET培训》在NET上构架企业级应用程序.ppt
- 《MMS Visual Studio .NET培训》可视化的软件架构设计.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)实验一 C语言程序上机操作.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)实验三 设变量X、Y的值.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)实验二 C语言程序初步.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)实验内容:程序(一)功能:测试程序的输出结果.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(实验程序).doc
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)循环嵌套实验.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)循环结构实验1.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)循环结构(理论).ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)数组第一次实验.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)数组第二次实验.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七章 数组.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三次课思考题问答.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 数据类型、运算符与表达式(c).ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二次课思考题问答.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二章 程序的灵魂-算法.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五章 选择结构程序设计.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六章 循环控制.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 输入输出.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)选择实验1.ppt
- 齐齐哈尔大学:《C语言程序设计》课程教学资源(PPT课件讲稿)选择结构2.ppt