- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术(第6章)课件及作业
电子工程学院 * (2)二叉排序树的二叉链表结点结构定义 typedef int keytype; typedef struct{ keytype key; //关键字项 datatype other; // 其它数据项 struct node *lchild, *rchild; //左、右指针域 } bstnode; 电子工程学院 * (3)二叉排序树的构造 构造一棵二叉排序树,就是从空的二叉排序树开始,逐个结点插入到二叉排序树中。 对于一组数据元素{ R1, R2, …, Rn } , 可按以下方法来构造二叉排序树: (1) 令R1为二叉树的根或子树的根; (2) 若R2R1,R2为R1左子树的根结点; (3) 若R2R1,R2为R1右子树的根结点; (4) 若R2=R1,则R2不插入。 (5) 对R3, …, Rn结点也是依次与前面生成的结点进行比较,确定结点插入的位置。 电子工程学院 * 说明 (1)每次插入的新结点都是当前二叉排序树的叶子结点; (2)给定的关键字序列不同,二叉排序树的形态则不同; (3)二叉排序树中不存在两个结点的关键字相同的结点。 电子工程学院 * 【例】给定关键字序列10、18、3、8、12、2、7、3,建立二叉排序树。 电子工程学院 * 【例】给定关键字序列8、10、2、12、18、3、7、3,建立二叉排序树。关键字的序列不同,二叉排序树的形态不同。 电子工程学院 * (4)二叉排序树的生成算法 ① 二叉排序树插入新结点的递归算法 void INSERTBST1(bstnode *t, bstnode *s ) // t为二叉排序树的根指针,s为插入的结点指针 { if (t==NULL) t=s; //原树为空, 返回s作为根指针 else { if (s-keyt-key) INSERTBST1( t-lchild, s ); // 在左子树中查找插入位置 if (s-keyt-key) INSERTBST1( t-rchild, s ); // 在右子树中查找插入位置 } } 电子工程学院 * ② 二叉排序树插入新结点的非递归算法 bstnode *INSERTBST2 (bstnode *t, bstnode *s) // t为二叉排序树的根指针,s为插入的结点指针 { bstnode * f, *p; p=t; while ( p!=NULL ) { f=p; // f指向 *p结点双亲 if (s-key= =p-key) return t; //树中已有结点*s;不插入 if (s-key p -key ) p=p-lchild; //在左子树中查找插入位置 else p=p-rchild; // 在右子树中查找插入位置 } if (t = = NULL) return s; //原树为空, 返回s作为根指针 if (s - keyf - key) f - lchild=s; //将*s插入为*f的左孩子 else f - rchild =s; // 将*s插入为*f的右孩子 return t; } 电子工程学院 * ③ 二叉排序树的生成算法 bstnode *CREATBST( ) //生成二叉排序树 { bstnode *t, *s; keytype key , endflag=0; // endflag为结点结束标志 datatype data; t=NULL; // 设置二叉排序树的初态为空树 scanf (“ %d ”,key); //读入一个结点的关键字 while( key != endflag) //输入非结束标志,执行以下操作 { s=( bstnode*)malloc( sizeof ( bstnode ) ); // 申请新结点 s - lchild = s - rchild = NULL; // 赋初值 s - key = key; scanf ( “ %d ”, data ); //读入结点的其它数据项 s - other = data; t=INSERTBST( t, s ) //将新结点插入树t中 scanf ( “ %
您可能关注的文档
- 观摩会汇报材料-桩头凿除和墩身施工质量控制(大西).ppt
- 视频会议施工工艺规范.docx
- 角的专项练习.doc
- 解一元一次方程的方法——去分母.ppt
- 解一元二次方程组.ppt
- 角度测量、经纬仪的使用.ppt
- 视觉错觉英语CP.ppt
- 角湾施工组织设计.doc
- 视频云应用服务系统详细设计.doc
- 解剖器的规范使用.ppt
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
最近下载
- 钢琴课程学员服务协议7篇.docx VIP
- 数字化赋能职业教育高质量发展路径.pptx VIP
- 新公司法试题及答案.doc VIP
- 2025年高考化学专题复习冲刺练习 专题01 物质的组成、性质和分类(含解析).pdf VIP
- 过敏性休克应急预案及处理流程.pptx VIP
- 新人教版聋校沟通与交往二年级下册第四单元第十课《我爱姥姥姥爷》说课稿.docx VIP
- 新人教版聋校沟通与交往二年级下册第四单元第十二课《我给妈妈讲故事》说课稿.docx VIP
- GJB 438C-2021 军用软件开发文档通用要求 (高清,带章).docx VIP
- 《乙型病毒性肝炎全人群管理专家共识(2023)》解读课件.pptx VIP
- 25个作业女性化教程.docx VIP
文档评论(0)