- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
26二叉平衡树
练习 营业额统计(sum.c/sum.in/sum.out)问题描述:一个公司需要统计自公司成立以来的营业情况。营业情况是这样统计的:由于在不同时候,公司的营业额会出现一些波动,当波动很大时,公司的经营状况就出现了问题。因此,经济管理学商定义了一种最小波动值来衡量这种情况:当天的最小波动值=min{|当天的营业额-以前某一天的营业额|}其中 第一天的最小波动值=第一天的营业额你的任务就是,对公司成立以来n(n=32767)天的营业额aj(aj=1000000)进行分析,把每天的最小波动值加起来样例输入:412 13 11 10样例输出:15 程序讲解-右旋转 void R-Rotate(BSTree p){ lc = p-lchild p-lchild = lc-rchild; lc-rchild = p; p = lc; } A B X 2 p lc A B p 1 AR h-1 BL AR 1、A左子树重(bf=1) 2、插入的结点在左子树的左子树中,bfA=2, bfB=1 BR BR X BL 0 0 3、调整前后树的高度均为h+1 程序讲解-左旋转 void L-Rotate(BSTree p){ rc = p-rchild p-rchild = rc-lchild; rc-lchild = p; p = rc; } A B -2 A B X p rc p AL BL BR h-1 -1 X BR BL AL 0 0 程序讲解-主程序 Status InsertVAL(BSTree T, ElemType e, Boolean taller){ if(!T){//空树 T = (BSTree) malloc(sizeof(BSTNode)); if(!T) exit(1); T-data =e;T-lchild=T-rchild=NULL; T-bf=EH;taller=TRUE; } if(EQ(e.key, T-data.key){Taller=FALSE; return 0} if(LT(e.key, T-data.key) //插入到左子树 else //插入到右子树 程序讲解-主程序 //插入到T的左子树 if(!InsertVAL(T-lchild, eTaller)) return 0;//子树中已经有e if(taller){ switch(T-bf){ case LH://原来左子树高,插入左子树后更高,需要平衡 LeftBalance(T); taller=FALSE; break; case EH://原来平衡,插入左子树后,则长高 T-bf = LH; taller = TRUE; break; case RH://原来右子树重,左子树长高后,则平衡 T-bf = EH; taller = FALSE; break; }//switch }//if(taller) 程序讲解-左平衡 void LeftBalance(BSTree T){ lc = T-lchild; switch(lc-bf){ case LH://插入到左子树的左子树中 T-bf = lc-bf = EH; R_Rotate(T); break; A B AR T lc h-1 BR h 2 1 A B AR h-1 BR h 0 0 程序讲解-左平衡 case RH://LR rd = lc-rchild; switch(rd-bf){//插入到右子树中 case LH: T-bf = RH; lc-bf = EH; break;//a case EH: T-bf = lc-bf = EH; break;//b case RH: T-bf = EH; lc-bf = LH; break;//c } rd-bf = EH; L_Rotate(T-lchild) R_Rotate(T); }//switch(lc-bf) }//LeftBalance 程序讲解-左平衡 A B AR T lc h-1 CR 2 -1 C BL rd 1 A B AR CR C BL CL 0 插入到C的左孩子中,并使得C左重 -1 0 CL h-2 (a) A B AR CR C BL CL
您可能关注的文档
- 改善提案课程培训教材.ppt
- 盐城大力发展新能源产业.pdf
- 基因表达数据的预处理方法.pdf
- 软件测试(14-1)_缺陷跟踪管理.ppt
- 牛顿定律应用补充题.ppt
- 日本企业实现自我产业升级.doc
- 创伤失血性休克复苏新理念及2007欧洲治疗指南.pdf
- 燃气管道带气开孔施工.doc
- 山东圣荣建设集团商业模式的研究.doc
- 大自然场景的布光及材质详解.doc
- 2-红河州建筑施工安全生产标准化工地复核评分表(2022年修改版).docx
- 6.锡通项目2018年下半年工作会汇报材料(2018.7.9).docx
- 2018道路工程知识点汇总(新版).docx
- 附件3:月度生产例会安全汇报资料-站台门项目部.docx
- 附件2:广东建工集团2018年度科技成果汇总表.DOC
- 马武停车区、三汇停车区停车位管理系统,0#台账缺量.doc
- 攀成钢委办发〔2015〕19号(党风廉政建设责任考核与追究办法).doc
- 1-红河州建筑工程质量管理标准化复核评分表(2022年修改版).docx
- 中交第三公路工程局第四工程分公司项目经济合同结算管理办法(修订).doc
- 厂站安全操作规程汇编.doc
文档评论(0)