b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

如何删除二进制排序树中的节点? .ppt

电脑杂谈  发布时间:2020-04-25 20:13:40  来源:网络整理

二叉排序树的删除_树与二叉树的转换代码_排序二叉树的建立

学习内容和重点(P227-250)动态查找表(二进制排序树的概念和目的,精通二进制排序树的构造和搜索算法及其性能分析方法;元素去除算法;平衡二进制)树(AVL树)概念; B树和B +树概念)了解二进制排序树删除答案问题1(概念)什么是二进制排序树?有什么特点? 5378651517870981回答问题2搜索二进制排序树的过程是什么? 5050505050503030830808020909085404035358832搜索关键字== 50、35、90、95用于搜索二进制二叉树的递归算法通常,二进制链接列表可用作二进制二叉树的存储结构. 递归搜索算法如下: BiTree SearchBST(BiTree T,KeyType键){//在根指针T指向的二进制排序树中递归搜索一个键等于键的数据元素// //如果搜索如果成功,则返回指向数据元素节点的指针,否则,如果((!T)|| EQ(key,T-> data.key))返回(T),则返回空指针. 否则,如果LT(key,T-> data.key)返回(SearchBST(T-> lchild,key)); //搜索结束//继续在左侧子树中搜索,否则返回(SearchBST(T-> rchild,key)); //继续在右边的子树中搜索} // SearchBST用于搜索二进制排序树Bi nTree的非递归算法//在二进制排序树上找到根值为T的键值为k的节点. //如果搜索成功,返回指向该节点的指针,否则返回空指针p = T; //指针p指向根节点,搜索从根节点开始(p!= NULL && p-> key!= k){if(k key)p = p-> l chi ld; el se p = p-> rchi ld;} return(p);} SearchBST(Bi tTreeT,密钥类型k){答案问题3如何在二进制排序树点中插入一个结?二进制排序树的插入思想: 可以通过递归过程来实现,即: 如果二进制排序树为空,则将新节点用作二进制排序树的根节点;否则,如果给定节点的关键字的值小于根节点的键值,则将其插入到左子树中;如果给定节点的键值大于根节点的键值,则将其插入到右子树中.

树与二叉树的转换代码_二叉排序树的删除_排序二叉树的建立

新插入的节点始终是叶节点. 为了插入到一个合理的位置,您需要确定其父节点,然后根据大小关系确定它是父节点的左子节点还是右子节点. 递归实现二进制排序树的插入: void I nsertBST(BitTree&T,BiTNode * P){/ /在以T为根的二进制排序树上插入指针p指向的新节点,其值范围为Inserted关键字if(T = = NULL)T = p;否则二叉排序树的删除,如果(T->键> p->键)I nsertBST(T-> lchild,p);否则if(T->键键)I nsertBST(T-> rchild,p);}二进制排序树的插入的非递归实现: void I nsertBST(BitTree&T,键类型k){ p = T; while(p!= NULL && p-> key!= key){q = p; //如果(p-> key> key)p = p-> lchild else p = p-> rchild;} if(p = = NULL){/ /没有发现成功new(r); r->键=键; //创建一个新节点rif(q-> key> key)q-> lchild = r;否则q-> rchild = r;}}回答问题4如何创建二进制排序树?从一个空的二叉树开始,在一系列搜索和插入操作之后,将生成一个二叉树.

树与二叉树的转换代码_排序二叉树的建立_二叉排序树的删除

示例: 绘制由数据{53、78、65、17、87、09、81、15}构建的双插入排序树的构建过程. 回答问题5. 如何删除二进制排序树中的节点?有四种情况讨论如何确保从二叉树中删除节点不会影响二叉树的性质: (1)如果要删除的节点是叶节点,则可以直接将其删除. (2)如果要删除具有右子树但没有左子树的节点,则可以用其右子树的根节点替换要删除的节点的位置. (3)如果要删除具有左子树但没有右子树的节点,则可以使用其左子树的根节点替换要删除的节点的位置,类似于步骤⑵. 删除二叉排序树(4)要删除该节点的左右子树不为空,请首先在要删除的节点的左子树中找到键值最大的节点),使用上述方法删除左子树中的节点,并使用它替换要删除的节点的位置,因此处理的结果必须确保删除节点后二叉树的性质保持不变. p230回答问题6二进制排序树的搜索性能是什么?与二进制排序树的形状有关!这与搜索关键字的顺序有关. 例如,由键序列1、2、3、4、5构成的二进制排序树与由键序列3、1、2、5、4构成的二进制排序树的平均搜索长度相差很大.

二叉排序树的删除_排序二叉树的建立_树与二叉树的转换代码

二进制排序树的搜索性能分析. nn个节点的最坏情况是一个节点的最坏情况是n(平均搜索长度是平均搜索长度是(n +1)/ 2;半搜索的决策树相同,平均性能是相同的作为半搜索的决策树,平均性能与lognlogn相同. 数量级N(树的深度),最佳情况是(n +1)/ 2;最佳情况是和回答问题7什么是平衡二叉树(AVL树)?452445245390452412如果二叉排序树是平衡的并且具有n个节点,则其高度可以保持为O(log 2n),并且平均搜索长度也可以保持不变在O(log 2n). 如何使二叉排序树成为平衡树?回答问题8: 平衡二叉树的平衡旋转(了解平衡树的平衡调整方法)如果在平衡中插入新节点二叉搜索树,它会导致不平衡. 这时,必须调整树的结构以使其平衡. 保持二进制排序树的特征. ★平衡旋转有四种情况: 1. LL1 .LL类型((最低不平衡节点是由最低不平衡节点c,c引起的,插入的节点是(L)(L)左子节点的左子节点(L) ),(L))二叉排序树的删除,平衡调整应向右旋转. 余额调整需要正确的调整. a a b bc cc c插入点为a a b ba的左子级的左子级a a平衡二叉树的平衡旋转2.RR2.RR类型的点是点aa的右级子. 要向左旋转...类型aa((使最低的不平衡节点成为最低的不平衡节点c,c,插入的右子(R)的右子(R)(R)),插入的平衡音( R)),平衡音b bc cb ba ac c平衡二叉树的平衡旋转3.LR3.LR类型左子项的左子项(L)右旋两次右旋两次...插入节点而不是aa类型((使最低的不平衡节点成为最低的不平衡节点是c,c,并且插入的子项是右子项(R)(R)的右子项),(R)),应进行平衡调整离开左侧和插入节点,而不是aa,而aa成为其右子节点.

二叉排序树的删除_排序二叉树的建立_树与二叉树的转换代码

插值节点是a. 平衡调整应该左右孩子. b Bc cb ba ac c平衡二叉树的平衡旋转平衡旋转4. RL4. RL类型的右子元素的右子元素(R)向左旋转两次,并向左旋转两次. 插入节点替换类型((导致最大的不平衡节点是左子节点(L),左子节点的(L)导致最低不平衡节点为c,c,插入的节点是(R). aa ,, aa成为它的左孩子. aa的内插节点是一个向右和向左孩子平衡的aa平衡调整a a b bc cb bc c答案问题9什么是B树?(理解概念)351391271111181991645347378432FFFFFFFFFFFF for示例在下面的4阶B树中找到47和23B树,搜索过程p239从根节点开始,沿着指针搜索该节点,并在该节点内执行顺序(或减半)搜索. 如果成功,它将返回指向所搜索关键字所在的节点的指针以及该关键字在节点中的位置;如果搜索失败,则返回插入位置答案问题1 0什么是B +树? (了解概念)59 9715 44 5972 9710 1521 37 4451 5 963 7285 91 97rootsqt(方法掌握概念,掌握创建哈希表的常用方法以及解决冲突的方法),学习课程内容并关注哈希表


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-188718-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...