全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
寻找二叉树中两个节点的最近的公共祖先迅雷笔试归来分类:C/C+学习笔记2010-10-28 10:38779人阅读评论(4)收藏举报迅雷的笔试可真让人煎熬啊,题量很大,而且考试时间是三个小时。不过迅雷的题目质量很高,既考查了基础知识又不乏高难的数据结构和算法题目。下面和大家分享两道算法编程题,代码没有在编译器上调试,可能会出现一点小bug,感兴趣的朋友可以编译调试一下。题目1:将一个单链表逆转原来的头指针变为尾指针,原来的尾指针变为头指针。算法思想:从链表的头结点开始依次逆转,最终将整个链表逆转。程序代码:view plain1. /*节点的类定义*/2. classNode3. 4. Node*next;5. ;6. 7. /*链表的类定义*/8. classList9. 10. Node*head;11. ;12. 13. /*逆转函数将一个单链表逆转*/14. voidReverseList(List&list)15. 16. Node*pre=NULL;17. Node*cur=list.head;18. Node*back=cur-next;19. 20. while(back!=NULL)21. 22. cur-next=pre;23. pre=cur;24. cur=back;25. back=cur-next;26. 27. 28. 题目2:要求寻找二叉树中两个节点的最近的公共祖先,并将其返回。view plain1. classNode2. 3. Node*left;4. Node*right;5. Node*parent;6. ;7. /*查找p,q的最近公共祖先并将其返回。*/8. Node*NearestCommonAncestor(Node*p,Node*q);算法思想:这道题的关键在于每个节点中包含指向父节点的指针,这使得程序可以用一个简单的算法实现。首先给出p的父节点p-parent,然后将q的所有父节点依次和p-parent作比较,如果发现两个节点相等,则该节点就是最近公共祖先,直接将其返回。如果没找到相等节点,则将q的所有父节点依次和p-parent-parent作比较.直到p-parent=root。程序代码:view plain1. Node*NearestCommonAncestor(Node*root,Node*p,Node*q)2. 3. Node*temp;4. while(p!=NULL)5. 6. p=p-parent;7. temp=q;8. while(temp!=NULL)9. 10. if(p=temp-parent)11. returnp;12. temp=temp-parent;13. 14. 15. 知识拓展:对于第二个二叉树的问题,如果节点中不包含指向父节点的指针应该怎么计算?算法思想:如果一个节点的左子树包含p,q中的一个节点,右子树包含另一个,则这个节点就是p,q的最近公共祖先。程序代码:view plain1. /*查找a,b的最近公共祖先,root为根节点,out为最近公共祖先的指针地址*/2. intFindNCA(Node*root,Node*a,Node*b,Node*out)3. 4. if(root=null)5. 6. return0;7. 8. 9. if(root=a|root=b)10. 11. return1;12. 13. 14. intiLeft=FindNCA(root-left,a,b,out);15. if(iLeft=2)16. 17. return2;18. 19. 20. intiRight=FindNCA(root-right,a,b,out);21. if(iRight=2)22. 23. return2;24. 25. 26. if(iLeft+iRight=2)27. 28. *out=root;29. 30. returniLeft+iRight;31. 32. 33. voidmain()34. 35. Node*root=.;36. Node*a=.;37. Node*b=.;38. Node*out=null;39. inti=FindNCA(root,a,b,&out);40. if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏宿迁开源供水有限公司江苏沃可丰生物科技有限公司招聘工作人员拟聘用笔试历年参考题库附带答案详解
- 2025广东旅控兴邦文旅有限公司招聘基地教官61人笔试历年参考题库附带答案详解
- 2025年中国铁路上海局集团有限公司阜阳北站货运检查员实习生招聘10人笔试历年参考题库附带答案详解
- 2025山东烟台市莱阳市市管企业招聘高层次人才10人笔试历年参考题库附带答案详解
- 2025安徽宣城市宣州区国有资本运营集团有限公司第一批次招聘工作人员9人笔试历年参考题库附带答案详解
- 2025四川长虹民生物流股份有限公司招聘营销主管岗位拟录用人员笔试历年参考题库附带答案详解
- 2025四川广元市园区建设投资集团有限公司选聘副总经理和财务总监2人笔试历年参考题库附带答案详解
- 2026年太原旅游职业学院单招职业适应性测试题库附答案解析
- 2025云南兆讯科技有限责任公司社会招聘笔试笔试历年参考题库附带答案详解
- 2026年云南三鑫职业技术学院单招职业适应性测试必刷测试卷及答案解析(名师系列)
- 普通话朗读范文50篇拼音版
- 电力系统分析课程设计
- T-HEBQIA 265-2024 智慧校园一卡通综合管理系统设计规范
- 2024年专业人才引进咨询合同
- 中建幕墙施工专项方案
- 【MOOC】跨文化交际入门-华中师范大学 中国大学慕课MOOC答案
- 篮球赛宣传活动方案
- 腰突症康复治疗
- 沥青路面工程分包合同案例
- 单片机应用系统设计与创新学习通超星期末考试答案章节答案2024年
- 地形图测绘报告
评论
0/150
提交评论