网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构讲义第9章.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、插入算法: 首先执行查找算法,找出被插结点的父亲结点。 判断被插结点是其父亲结点的左、右儿子。将被 插结点作为叶子结点插入。 若二叉树为空。则首先单独生成根结点。 注意:新插入的结点总是叶子结点。 e、g:将数的序列:122、99、250、110、300、280 作为二叉排序树的结 点的关键字值,生成二叉排序树。 122 122 99 122 250 99 2、插入算法: 首先执行查找算法,找出被插结点的父亲结点。 判断被插结点是其父亲结点的左、右儿子。将被 插结点作为叶子结点插入。 若二叉树为空。则首先单独生成根结点。 注意:新插入的结点总是叶子结点。 e、g:将数的序列:122、99、250、110、300、280 作为二叉排序树的结 点的关键字值,生成二叉排序树。 122 122 99 122 250 99 122 250 110 99 2、插入算法: 首先执行查找算法,找出被插结点的父亲结点。 判断被插结点是其父亲结点的左、右儿子。将被 插结点作为叶子结点插入。 若二叉树为空。则首先单独生成根结点。 注意:新插入的结点总是叶子结点。 e、g:将数的序列:122、99、250、110、300、280 作为二叉排序树的结 点的关键字值,生成二叉排序树。 122 122 99 122 250 99 122 250 110 99 122 250 300 110 99 2、插入算法: 首先执行查找算法,找出被插结点的父亲结点。 判断被插结点是其父亲结点的左、右儿子。将被 插结点作为叶子结点插入。 若二叉树为空。则首先单独生成根结点。 注意:新插入的结点总是叶子结点。 122 250 300 110 280 99 e、g:将数的序列:122、99、250、110、300、280 作为二叉排序树的结 点的关键字值,生成二叉排序树。 122 122 99 122 250 99 122 250 110 99 122 250 300 110 99 2、插入算法: Status SearchBST ( BiTree T,KeyType key, BiTree f,BiTree p ) // 在二叉排序树 T 查找关键字之值为 key 的结点。初始时 f 为 NULL。 // 如树空,返回 p 为 NULL及 FALSE。如树非空且查找成功,返回 p = T 及 TRUE。 // 如树非空且查不成功,返回 p = f 及 FALSE。f 为待插入结点的的父亲结点的地址。 { if ( ( !T) { p = f; return FALSE; } else if ( EQ( key, T -data. key ) ) { p = T; return TRUE; } else if ( LT( key , T -data. key ) ) return (SearchBST ( T - lchild, key, T, p )); else return (SearchBST ( T - rchild, key , T, p )); } // SearchBST 程序实现: 122 250 300 110 99 T p f:null f: T 的父亲结点 p: 指向最后一个结点,TRUE 找到;FALSE 叶子的父亲结点。如:插入 280 的过程。 280 2、插入算法: 执行实例:插入值为 280 的结点 122 250 300 110 99 T f:null 122 250 300 110 99 f T Key=280 122 250 300 110 99 f T Key=280 f 122 250 300 110 99 T:null Key=280 p 122 250 300 110 99 280 2、插入算法: Status Inset BST ( BiTree T, ElemType e ) // 在二叉排序树中不存在 e.key 时,插入并返回 TRUE,否则返回 FALSE。 { if ( ! SearchBST ( T,e.key,NULL,p ) { s = ( Bitree ) malloc ( sizeof ( BitNode ) ); s-data = e; s-lchild = s-rchild = NULL; if ( ! p ) T = s; else if ( LT( e.key , p -data. key ) ) p - lchil

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档