版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构讲义(第四讲内容:查值K找失败,返回特定的值,该值表示查找失败0缺点:平均查找长度较大,特别是当顺序表的长度很大时,查找效率较低时间复杂度为2、二分查找(又称折半查找算法的基本思想(key1/2keyintBiSearch(DataTypea[],intn,KeyTypea[0]--a[n-1]key//查找成功时返回该元素的下标序号;失败时返回-{intlow=0,high=n- intwhile(low<={mid=(low+high)/2; if(a[mid].key==key)returnmid; elseif(a[mid].key<key)low=mid+1;elsehigh=mid-}return- }时间复杂度为折半查找要求表是顺序的,为保持表的有序性,在进行插入和删除操作时,索引表中的数据元素由两个域key域的最大值link域第一个数据元素的位置编号。分块查找过程分两步进行:首先查找索引表,确定待查记录所在块(子表(可用折半查找法或顺序查找法在相应块(子表)录。分块查找的主要代价是:需要增加一个辅助数组的空间和将初始表分衡二叉树等。树结构有B-树、B+树等。左的所有结点均小于根的值右的所有结点均大于根的值它的左右也分别为二叉排序树intSearch(BiTreeNode*root,DataType{BiTreeNode*p;if(root!={p=root;while(p!=NULL){if(p->data.keyitem.key)return1;//查找成功if(item.key>p->data.key)p=p-> //在右继p=p-> //在左继}}return }插入算法设计如intInsert(BiTreeNode**root,DataTyperootitemitem{BiTreeNode*current,*parent=NULL,*p;current=*root;while(current!={if(current->data.key==item.key)return0;parent=current;if(current->data.key<item.key)current=current->elsecurrent=current-}P=(BiTreeNode*)malloc(sizeof(BiTreeNode));if(p==NULL){}P->data=P->leftChild=P->rightChild=if(parent==NULL)*root=p; elseif(item.key<parent->data.key)parent->leftChild=p; parent->rightChild= return}值大于要删除结点数据元素关键字的最小值即寻找要删除结点右的最左结在情况下,二叉排序树的平均查找长度为O(n)。在一般情况下,二叉排序树的平均查找长度为O(log2n)。2(AVL树高度相差不到1。所以此树总是平衡的。平衡二叉树(BalancedbinarytreeAVL左右深度之差的绝对值不超过左右仍然为平衡二叉树平衡因子BF=左深度-右深度平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则找出插入新结点后失去平衡的最小根结点的指针。然后再调整这个中有关结点之间的关系,使之成为新的平衡。当失去平衡的最小被调整为平衡后,原有其他所有不平衡无需调整,整个二叉排序树就又失去平衡的最小是指以离插入结点最近,且平衡因子绝对值大于1的结点作为根的。假设用A表示失去平衡的最小的根结点,则调整该子1)LL由于在A的左孩子B的左上插入结点F,使A的平衡因子由1增至2 即将A的左孩子B向右上旋转代替A作为根结点,A向右下旋转成为B的右的根结点。而原来B的右子树则变成A的左。RR由于在A的右孩子C的右上插入结点F,使A的平衡因子由-1减至-2AC代替A作为根结点,A向左下旋转成为C的左的根结点。而原来C的左子树则变成A的右。LR由于在ABF,使A12而失去平衡。故需进行两次旋转操作(先逆时针,后顺时针)。即先将A的左孩子B的右的根结点D向左上旋转提升到B结点的位置,然后再把该DALL型,再按LL的左上,此时成为LL型,再按LL型处理成平衡型RL由于在A的右孩子C的左上插入结点F,使A的平衡因子由-1减至-2而失去平衡。故需进行两次旋转操作(先顺时针,后逆时针),即先将A的右孩子C的左的根结点D向右上旋转提升到C结点的位置,然后再把该DARR型,再按RRA的左上,此时成为RR型,再按RR型处理成平衡型B_二叉排序树那样的分支现象。因此B_树的动态查找效率更高。B_B_mB_树或者是一棵空树,或者是满足下列要求的m树:树中每个结点至多有m个孩子结点(至多含有m-1个关键字除根结点外,其他结点至少有m/2个孩子结点(符号“”表示上取整若根结点不是叶结点,则根结点至少有结点查找算B_xx.keyKi若x.key=Ki则查找成功若key<K1则沿着指针P0所指的继续查找若Ki<key<Ki+1则沿着指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于毕业学生实习报告四篇
- 经股肱桡尺动脉介入治疗对比-袁晋青
- 北京小学科学教师学年工作总结大全
- 儿童临时监护协议书(2篇)
- 办公场地出租合同模板
- 深圳商铺租赁合同书
- 赠送别克商务轿车协议书
- 厂房租赁协议合同书范本
- 扬州地下停车位出租协议
- 八年级道德与法治下册第二单元理解权利义务第四课公民义务第2框依法履行义务教案新人教版
- 急停急起运球教学设计
- 2024年江西省三校生高职英语高考试卷
- 中国古代文学智慧树知到期末考试答案章节答案2024年广州大学
- 重庆市南岸区2022-2023学年五年级上学期期末语文试卷
- 现浇钢筋混凝土整体式肋梁楼盖结构-课程设计
- 挂篮施工及安全控制连续梁施工安全培训课件
- 学生学习概览StudentLearningProfile
- 小班数学《认识1到10的数字》课件
- 手工花项目策划书
- 服务器维保应急预案
- 循环系统病症的临床思维
评论
0/150
提交评论